From 12ad684ff6ce8759b01d54c7c68ac246fc65c5c4 Mon Sep 17 00:00:00 2001 From: Chris Dew Date: Tue, 17 Feb 2015 15:00:29 +0000 Subject: [PATCH] first commit --- AUTHORS | 1 + COPYING | 1 + ChangeLog | 1 + INSTALL | 370 +++ Makefile.am | 1 + NEWS | 1 + README | 16 + configure.ac | 32 + include/Makefile | 552 +++++ include/Makefile.am | 3 + include/protobuf2jansson.h | 19 + .../.deps/libTest_la-libTest.Plo | 1 + .../.deps/libprotobuf2jansson.Plo | 53 + ...rotobuf2jansson_la-libprotobuf2jansson.Plo | 87 + ...otobuf2jansson_la-meta_descriptor.json.Plo | 1 + .../.deps/libprotobuf2jansson_la-varint.Plo | 74 + .../.libs/libprotobuf2jansson.a | Bin 0 -> 78268 bytes .../.libs/libprotobuf2jansson.la | 1 + .../.libs/libprotobuf2jansson.lai | 41 + .../.libs/libprotobuf2jansson.so | 1 + .../.libs/libprotobuf2jansson.so.0 | 1 + .../.libs/libprotobuf2jansson.so.0.0.0 | Bin 0 -> 59667 bytes ...bprotobuf2jansson_la-libprotobuf2jansson.o | Bin 0 -> 46664 bytes ...protobuf2jansson_la-meta_descriptor.json.o | Bin 0 -> 29008 bytes .../.libs/libprotobuf2jansson_la-varint.o | Bin 0 -> 4928 bytes libprotobuf2jansson/Makefile | 678 ++++++ libprotobuf2jansson/Makefile.am | 19 + libprotobuf2jansson/libprotobuf2jansson.c | 400 ++++ libprotobuf2jansson/libprotobuf2jansson.la | 41 + ...protobuf2jansson_la-libprotobuf2jansson.lo | 12 + ...bprotobuf2jansson_la-libprotobuf2jansson.o | Bin 0 -> 43544 bytes ...rotobuf2jansson_la-meta_descriptor.json.lo | 12 + ...protobuf2jansson_la-meta_descriptor.json.o | Bin 0 -> 29008 bytes .../libprotobuf2jansson_la-varint.lo | 12 + .../libprotobuf2jansson_la-varint.o | Bin 0 -> 4928 bytes libprotobuf2jansson/meta_descriptor.json.c | 2133 +++++++++++++++++ libprotobuf2jansson/meta_descriptor.json.h | 7 + libprotobuf2jansson/minunit.h | 168 ++ libprotobuf2jansson/varint.c | 35 + libprotobuf2jansson/varint.h | 11 + .../.deps/exampleProgram-exampleProgram.Po | 54 + testsuite/.deps/testsuite-testsuite.Po | 107 + testsuite/.libs/testsuite | Bin 0 -> 30292 bytes testsuite/Makefile | 612 +++++ testsuite/Makefile.am | 25 + testsuite/meta_descriptor.desc | Bin 0 -> 4445 bytes testsuite/testsuite | 228 ++ testsuite/testsuite-testsuite.o | Bin 0 -> 39688 bytes testsuite/testsuite.c | 190 ++ 49 files changed, 6001 insertions(+) create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 ChangeLog create mode 100644 INSTALL create mode 100644 Makefile.am create mode 100644 NEWS create mode 100644 README create mode 100644 configure.ac create mode 100644 include/Makefile create mode 100644 include/Makefile.am create mode 100644 include/protobuf2jansson.h create mode 100644 libprotobuf2jansson/.deps/libTest_la-libTest.Plo create mode 100644 libprotobuf2jansson/.deps/libprotobuf2jansson.Plo create mode 100644 libprotobuf2jansson/.deps/libprotobuf2jansson_la-libprotobuf2jansson.Plo create mode 100644 libprotobuf2jansson/.deps/libprotobuf2jansson_la-meta_descriptor.json.Plo create mode 100644 libprotobuf2jansson/.deps/libprotobuf2jansson_la-varint.Plo create mode 100644 libprotobuf2jansson/.libs/libprotobuf2jansson.a create mode 120000 libprotobuf2jansson/.libs/libprotobuf2jansson.la create mode 100644 libprotobuf2jansson/.libs/libprotobuf2jansson.lai create mode 120000 libprotobuf2jansson/.libs/libprotobuf2jansson.so create mode 120000 libprotobuf2jansson/.libs/libprotobuf2jansson.so.0 create mode 100755 libprotobuf2jansson/.libs/libprotobuf2jansson.so.0.0.0 create mode 100644 libprotobuf2jansson/.libs/libprotobuf2jansson_la-libprotobuf2jansson.o create mode 100644 libprotobuf2jansson/.libs/libprotobuf2jansson_la-meta_descriptor.json.o create mode 100644 libprotobuf2jansson/.libs/libprotobuf2jansson_la-varint.o create mode 100644 libprotobuf2jansson/Makefile create mode 100644 libprotobuf2jansson/Makefile.am create mode 100644 libprotobuf2jansson/libprotobuf2jansson.c create mode 100644 libprotobuf2jansson/libprotobuf2jansson.la create mode 100644 libprotobuf2jansson/libprotobuf2jansson_la-libprotobuf2jansson.lo create mode 100644 libprotobuf2jansson/libprotobuf2jansson_la-libprotobuf2jansson.o create mode 100644 libprotobuf2jansson/libprotobuf2jansson_la-meta_descriptor.json.lo create mode 100644 libprotobuf2jansson/libprotobuf2jansson_la-meta_descriptor.json.o create mode 100644 libprotobuf2jansson/libprotobuf2jansson_la-varint.lo create mode 100644 libprotobuf2jansson/libprotobuf2jansson_la-varint.o create mode 100644 libprotobuf2jansson/meta_descriptor.json.c create mode 100644 libprotobuf2jansson/meta_descriptor.json.h create mode 100644 libprotobuf2jansson/minunit.h create mode 100644 libprotobuf2jansson/varint.c create mode 100644 libprotobuf2jansson/varint.h create mode 100644 testsuite/.deps/exampleProgram-exampleProgram.Po create mode 100644 testsuite/.deps/testsuite-testsuite.Po create mode 100755 testsuite/.libs/testsuite create mode 100644 testsuite/Makefile create mode 100644 testsuite/Makefile.am create mode 100644 testsuite/meta_descriptor.desc create mode 100755 testsuite/testsuite create mode 100644 testsuite/testsuite-testsuite.o create mode 100644 testsuite/testsuite.c diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/AUTHORS @@ -0,0 +1 @@ + diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..54c4590 --- /dev/null +++ b/COPYING @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ChangeLog @@ -0,0 +1 @@ + diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..2099840 --- /dev/null +++ b/INSTALL @@ -0,0 +1,370 @@ +Installation Instructions +************************* + +Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, +Inc. + + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. + +Basic Installation +================== + + Briefly, the shell command `./configure && make && make install' +should configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. + + The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. + + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + + 4. Type `make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. + +Installation Names +================== + + By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + HP-UX `make' updates targets which have the same time stamps as +their prerequisites, which makes it generally unusable when shipped +generated files such as `configure' are involved. Use GNU `make' +instead. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf limitation. Until the limitation is lifted, you can use +this workaround: + + CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash + +`configure' Invocation +====================== + + `configure' recognizes the following options to control how it +operates. + +`--help' +`-h' + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..b1dd4e1 --- /dev/null +++ b/Makefile.am @@ -0,0 +1 @@ +SUBDIRS=libprotobuf2jansson include testsuite diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..c8add1e --- /dev/null +++ b/NEWS @@ -0,0 +1 @@ +Sample NEWS file for protobuf2jansson project. diff --git a/README b/README new file mode 100644 index 0000000..8d4ee37 --- /dev/null +++ b/README @@ -0,0 +1,16 @@ +This is a very early version of a library which converts a protobuf serialised +message and a .desc file describing the message format into a Jansson JSON +object, which can be serialised to a string. + +This avoid recompiling a C executable each time you make minor changes to .proto +files (assuming you need to output JSON). + + +Configure with: + +CC=clang ./configure + +unless you have gcc-4.9 or later, until I find some answers to: + +http://stackoverflow.com/questions/28557945/how-to-make-autotools-generated-configure-enforce-availability-of-c11s-gener +http://stackoverflow.com/questions/28558206/make-autotools-add-std-c11-to-cflags \ No newline at end of file diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..7d95c94 --- /dev/null +++ b/configure.ac @@ -0,0 +1,32 @@ +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.59) +AC_INIT(protobuf2jansson, 1.0) +AC_PROG_CC + +PKG_CHECK_MODULES([jansson], [jansson >= 2.7]) + +AC_CANONICAL_SYSTEM + +dnl Initialize automake +AM_INIT_AUTOMAKE + +dnl this allows us specify individual liking flags for each target +AM_PROG_CC_C_O + +dnl Initialize Libtool +LT_INIT + +dnl Check if Libtool is present +dnl Libtool is used for building share libraries +AC_PROG_LIBTOOL + +AC_PROG_CC +CFLAGS+=" -std=c11 -O0 -g" + +AC_CONFIG_FILES(Makefile + testsuite/Makefile + libprotobuf2jansson/Makefile + include/Makefile) + +AC_OUTPUT \ No newline at end of file diff --git a/include/Makefile b/include/Makefile new file mode 100644 index 0000000..2027d8e --- /dev/null +++ b/include/Makefile @@ -0,0 +1,552 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# include/Makefile. Generated from Makefile.in by configure. + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + + + +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/protobuf2jansson +pkgincludedir = $(includedir)/protobuf2jansson +pkglibdir = $(libdir)/protobuf2jansson +pkglibexecdir = $(libexecdir)/protobuf2jansson +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = x86_64-unknown-linux-gnu +host_triplet = x86_64-unknown-linux-gnu +target_triplet = x86_64-unknown-linux-gnu +subdir = include +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(include_HEADERS) +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_$(V)) +am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(includedir)" +HEADERS = $(include_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = aclocal-1.14 +AMTAR = $${TAR-tar} +AM_DEFAULT_VERBOSITY = 1 +AR = ar +AUTOCONF = autoconf +AUTOHEADER = autoheader +AUTOMAKE = automake-1.14 +AWK = gawk +CC = clang +CCDEPMODE = depmode=gcc3 +CFLAGS = -g -O2 -std=c11 -O0 -g +CPP = clang -E +CPPFLAGS = +CYGPATH_W = echo +DEFS = -DPACKAGE_NAME=\"protobuf2jansson\" -DPACKAGE_TARNAME=\"protobuf2jansson\" -DPACKAGE_VERSION=\"1.0\" -DPACKAGE_STRING=\"protobuf2jansson\ 1.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"protobuf2jansson\" -DVERSION=\"1.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" +DEPDIR = .deps +DLLTOOL = false +DSYMUTIL = +DUMPBIN = +ECHO_C = +ECHO_N = -n +ECHO_T = +EGREP = /bin/grep -E +EXEEXT = +FGREP = /bin/grep -F +GREP = /bin/grep +INSTALL = /usr/bin/install -c +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_PROGRAM = ${INSTALL} +INSTALL_SCRIPT = ${INSTALL} +INSTALL_STRIP_PROGRAM = $(install_sh) -c -s +LD = /usr/bin/ld -m elf_x86_64 +LDFLAGS = +LIBOBJS = +LIBS = +LIBTOOL = $(SHELL) $(top_builddir)/libtool +LIPO = +LN_S = ln -s +LTLIBOBJS = +MAKEINFO = makeinfo +MANIFEST_TOOL = : +MKDIR_P = /bin/mkdir -p +NM = /usr/bin/nm -B +NMEDIT = +OBJDUMP = objdump +OBJEXT = o +OTOOL = +OTOOL64 = +PACKAGE = protobuf2jansson +PACKAGE_BUGREPORT = +PACKAGE_NAME = protobuf2jansson +PACKAGE_STRING = protobuf2jansson 1.0 +PACKAGE_TARNAME = protobuf2jansson +PACKAGE_URL = +PACKAGE_VERSION = 1.0 +PATH_SEPARATOR = : +PKG_CONFIG = /usr/bin/pkg-config +PKG_CONFIG_LIBDIR = +PKG_CONFIG_PATH = :/usr/local/lib/:/usr/local/lib/:/usr/local/lib/pkgconfig +RANLIB = ranlib +SED = /bin/sed +SET_MAKE = +SHELL = /bin/bash +STRIP = strip +VERSION = 1.0 +abs_builddir = /home/chris/workspace/protobuf2jansson/include +abs_srcdir = /home/chris/workspace/protobuf2jansson/include +abs_top_builddir = /home/chris/workspace/protobuf2jansson +abs_top_srcdir = /home/chris/workspace/protobuf2jansson +ac_ct_AR = ar +ac_ct_CC = clang +ac_ct_DUMPBIN = +am__include = include +am__leading_dot = . +am__quote = +am__tar = $${TAR-tar} chof - "$$tardir" +am__untar = $${TAR-tar} xf - +bindir = ${exec_prefix}/bin +build = x86_64-unknown-linux-gnu +build_alias = +build_cpu = x86_64 +build_os = linux-gnu +build_vendor = unknown +builddir = . +datadir = ${datarootdir} +datarootdir = ${prefix}/share +docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} +dvidir = ${docdir} +exec_prefix = ${prefix} +host = x86_64-unknown-linux-gnu +host_alias = +host_cpu = x86_64 +host_os = linux-gnu +host_vendor = unknown +htmldir = ${docdir} +includedir = ${prefix}/include +infodir = ${datarootdir}/info +install_sh = ${SHELL} /home/chris/install-sh +jansson_CFLAGS = -I/usr/local/include +jansson_LIBS = -L/usr/local/lib -ljansson +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/libexec +localedir = ${datarootdir}/locale +localstatedir = ${prefix}/var +mandir = ${datarootdir}/man +mkdir_p = $(MKDIR_P) +oldincludedir = /usr/include +pdfdir = ${docdir} +prefix = /usr/local +program_transform_name = s,x,x, +psdir = ${docdir} +sbindir = ${exec_prefix}/sbin +sharedstatedir = ${prefix}/com +srcdir = . +sysconfdir = ${prefix}/etc +target = x86_64-unknown-linux-gnu +target_alias = +target_cpu = x86_64 +target_os = linux-gnu +target_vendor = unknown +top_build_prefix = ../ +top_builddir = .. +top_srcdir = .. + +# These files will end up in the install include directory +# For example, /usr/include +include_HEADERS = protobuf2jansson.h +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu include/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-includeHEADERS: $(include_HEADERS) + @$(NORMAL_INSTALL) + @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ + done + +uninstall-includeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(includedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-includeHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-includeHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-includeHEADERS install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-includeHEADERS + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/include/Makefile.am b/include/Makefile.am new file mode 100644 index 0000000..53331b7 --- /dev/null +++ b/include/Makefile.am @@ -0,0 +1,3 @@ +# These files will end up in the install include directory +# For example, /usr/include +include_HEADERS = protobuf2jansson.h diff --git a/include/protobuf2jansson.h b/include/protobuf2jansson.h new file mode 100644 index 0000000..89d1ff9 --- /dev/null +++ b/include/protobuf2jansson.h @@ -0,0 +1,19 @@ +#ifndef libprotobuf2jansson_H +#define libprotobuf2jansson_H + +#include "stdio.h" +#include + +extern void print_hello (); + +extern char *p2j_package_and_name_from_type_name(char *type_name__destroyed, char **package_out, char **name_list_out, size_t name_list_length); + +extern json_t *p2j_get_field_by_number(json_t *message, json_int_t number); + +extern json_t *p2j_get_message_by_name(json_t *descriptor, const char *name); + +extern json_t *p2j_protobuf2json_object(json_t *desc, const char *message_name, const char *buffer, size_t length); + + + +#endif diff --git a/libprotobuf2jansson/.deps/libTest_la-libTest.Plo b/libprotobuf2jansson/.deps/libTest_la-libTest.Plo new file mode 100644 index 0000000..9ce06a8 --- /dev/null +++ b/libprotobuf2jansson/.deps/libTest_la-libTest.Plo @@ -0,0 +1 @@ +# dummy diff --git a/libprotobuf2jansson/.deps/libprotobuf2jansson.Plo b/libprotobuf2jansson/.deps/libprotobuf2jansson.Plo new file mode 100644 index 0000000..fdb70a8 --- /dev/null +++ b/libprotobuf2jansson/.deps/libprotobuf2jansson.Plo @@ -0,0 +1,53 @@ +libprotobuf2jansson.lo: libprotobuf2jansson.c /usr/include/stdc-predef.h \ + ../include/protobuf2jansson.h /usr/include/stdio.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/4.8/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h + +/usr/include/stdc-predef.h: + +../include/protobuf2jansson.h: + +/usr/include/stdio.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: diff --git a/libprotobuf2jansson/.deps/libprotobuf2jansson_la-libprotobuf2jansson.Plo b/libprotobuf2jansson/.deps/libprotobuf2jansson_la-libprotobuf2jansson.Plo new file mode 100644 index 0000000..6291baf --- /dev/null +++ b/libprotobuf2jansson/.deps/libprotobuf2jansson_la-libprotobuf2jansson.Plo @@ -0,0 +1,87 @@ +libprotobuf2jansson_la-libprotobuf2jansson.lo: libprotobuf2jansson.c \ + ../include/protobuf2jansson.h /usr/include/stdio.h \ + /usr/include/features.h /usr/include/stdc-predef.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/bin/../lib/clang/3.4/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/bin/../lib/clang/3.4/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/local/include/jansson.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/local/include/jansson_config.h \ + /usr/bin/../lib/clang/3.4/include/stdint.h \ + /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h \ + /usr/include/stdint.h /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/string.h /usr/include/ctype.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h minunit.h varint.h \ + meta_descriptor.json.h + +../include/protobuf2jansson.h: + +/usr/include/stdio.h: + +/usr/include/features.h: + +/usr/include/stdc-predef.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/bin/../lib/clang/3.4/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/bin/../lib/clang/3.4/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/local/include/jansson.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/local/include/jansson_config.h: + +/usr/bin/../lib/clang/3.4/include/stdint.h: + +/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/string.h: + +/usr/include/ctype.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +minunit.h: + +varint.h: + +meta_descriptor.json.h: diff --git a/libprotobuf2jansson/.deps/libprotobuf2jansson_la-meta_descriptor.json.Plo b/libprotobuf2jansson/.deps/libprotobuf2jansson_la-meta_descriptor.json.Plo new file mode 100644 index 0000000..1400ab5 --- /dev/null +++ b/libprotobuf2jansson/.deps/libprotobuf2jansson_la-meta_descriptor.json.Plo @@ -0,0 +1 @@ +libprotobuf2jansson_la-meta_descriptor.json.lo: meta_descriptor.json.c diff --git a/libprotobuf2jansson/.deps/libprotobuf2jansson_la-varint.Plo b/libprotobuf2jansson/.deps/libprotobuf2jansson_la-varint.Plo new file mode 100644 index 0000000..5977b8c --- /dev/null +++ b/libprotobuf2jansson/.deps/libprotobuf2jansson_la-varint.Plo @@ -0,0 +1,74 @@ +libprotobuf2jansson_la-varint.lo: varint.c /usr/include/stdio.h \ + /usr/include/features.h /usr/include/stdc-predef.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/bin/../lib/clang/3.4/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/bin/../lib/clang/3.4/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/bin/../lib/clang/3.4/include/stdint.h \ + /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h \ + /usr/include/stdint.h /usr/include/x86_64-linux-gnu/bits/wchar.h \ + minunit.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/string.h /usr/local/include/jansson.h \ + /usr/local/include/jansson_config.h varint.h + +/usr/include/stdio.h: + +/usr/include/features.h: + +/usr/include/stdc-predef.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/bin/../lib/clang/3.4/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/bin/../lib/clang/3.4/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/bin/../lib/clang/3.4/include/stdint.h: + +/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +minunit.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/string.h: + +/usr/local/include/jansson.h: + +/usr/local/include/jansson_config.h: + +varint.h: diff --git a/libprotobuf2jansson/.libs/libprotobuf2jansson.a b/libprotobuf2jansson/.libs/libprotobuf2jansson.a new file mode 100644 index 0000000000000000000000000000000000000000..46a5910128255cb7d053d477e0ce8bc70737813d GIT binary patch literal 78268 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 literal 0 HcmV?d00001 diff --git a/libprotobuf2jansson/.libs/libprotobuf2jansson.la b/libprotobuf2jansson/.libs/libprotobuf2jansson.la new file mode 120000 index 0000000..fe5c174 --- /dev/null +++ b/libprotobuf2jansson/.libs/libprotobuf2jansson.la @@ -0,0 +1 @@ +../libprotobuf2jansson.la \ No newline at end of file diff --git a/libprotobuf2jansson/.libs/libprotobuf2jansson.lai b/libprotobuf2jansson/.libs/libprotobuf2jansson.lai new file mode 100644 index 0000000..9ef6426 --- /dev/null +++ b/libprotobuf2jansson/.libs/libprotobuf2jansson.lai @@ -0,0 +1,41 @@ +# libprotobuf2jansson.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libprotobuf2jansson.so.0' + +# Names of this library. +library_names='libprotobuf2jansson.so.0.0.0 libprotobuf2jansson.so.0 libprotobuf2jansson.so' + +# The name of the static archive. +old_library='libprotobuf2jansson.a' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' -L/usr/local/lib /usr/local/lib/libjansson.la' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libprotobuf2jansson. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/lib' diff --git a/libprotobuf2jansson/.libs/libprotobuf2jansson.so b/libprotobuf2jansson/.libs/libprotobuf2jansson.so new file mode 120000 index 0000000..c2d2db1 --- /dev/null +++ b/libprotobuf2jansson/.libs/libprotobuf2jansson.so @@ -0,0 +1 @@ +libprotobuf2jansson.so.0.0.0 \ No newline at end of file diff --git a/libprotobuf2jansson/.libs/libprotobuf2jansson.so.0 b/libprotobuf2jansson/.libs/libprotobuf2jansson.so.0 new file mode 120000 index 0000000..c2d2db1 --- /dev/null +++ b/libprotobuf2jansson/.libs/libprotobuf2jansson.so.0 @@ -0,0 +1 @@ +libprotobuf2jansson.so.0.0.0 \ No newline at end of file diff --git a/libprotobuf2jansson/.libs/libprotobuf2jansson.so.0.0.0 b/libprotobuf2jansson/.libs/libprotobuf2jansson.so.0.0.0 new file mode 100755 index 0000000000000000000000000000000000000000..483cac7939671411758e9f38ba28ee6055969f3f GIT binary patch literal 59667 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 literal 0 HcmV?d00001 diff --git a/libprotobuf2jansson/.libs/libprotobuf2jansson_la-libprotobuf2jansson.o b/libprotobuf2jansson/.libs/libprotobuf2jansson_la-libprotobuf2jansson.o new file mode 100644 index 0000000000000000000000000000000000000000..4ee5399e9eb8739520d65a8cb946b4927d1fd053 GIT binary patch literal 46664 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 literal 0 HcmV?d00001 diff --git a/libprotobuf2jansson/.libs/libprotobuf2jansson_la-meta_descriptor.json.o b/libprotobuf2jansson/.libs/libprotobuf2jansson_la-meta_descriptor.json.o new file mode 100644 index 0000000000000000000000000000000000000000..c6525239ca6940681fc890d30cd5755299505159 GIT binary patch literal 29008 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 literal 0 HcmV?d00001 diff --git a/libprotobuf2jansson/.libs/libprotobuf2jansson_la-varint.o b/libprotobuf2jansson/.libs/libprotobuf2jansson_la-varint.o new file mode 100644 index 0000000000000000000000000000000000000000..8d390e52fd58453354adbd621ae9a11372596de6 GIT binary patch literal 4928 zcmb_fU2GIp6uz_5ZMVD7?T`Euvm!sm&|RQa3#Pc04s5mCl7%A1m}Pc5?Jn%jZgys{ z5D5^XVXYz7C*zYQKB!59PxwbdjfphAw8kjtgH{ujCMM_u2@#Td&YgR=)4Nk+)RWBI zbH4LC=iK=_qx9|bNRmt#Nn{U^xZqev>lTD4Wus&*Sw#k8<)35a)4#{c*3DRXa5h$s z--umPX3*qwWtzms;-HI9#>NylfS2PpW4oq;=f4Dl4>1#<11a__m%6yR#moA?kT%kWf1n21QV-&QFAJxpgM)!qfAXS~Ry z^$^W7o?%ium5wrLFO`nav{GFsl@8dF&rhWRub9bJ*W+IBj7OJH`_Wq-zlxKq#R%RS zx=m_4wLTh)(Hnp`%@D74 zBj9@ifdC0RUhnhE&-WEdqLAnH1!eYmTTDHMKM@D=EcELP|l(w@= z;WA$}U_7J^&XRPuVL6;7dPyLM2|1ybvbq^gqc!6*_B~l|Cjoqw-`92iDbI!$UzhJK zUv|Q0UAg|t#KaXje?(sC3r|c~9xsI52&T4AFC^FuQgP?8q#ZOlq@@c(SPCI2I2P=1 z0=a@d60&q7JEChtA*hGoX2cc8R#BugYKh={EKohtku(X87KKjWaZpC~lm;x)V9L@> zE0oTu5c`ByGO`6d)E@3=+hI{nd#Ke^M~p~9=~KE7D#`Ya$Z%Fyb6Z2LDb;{7z`U>T za2$QM^46qDBvZ(1k#we%H6qU!O2>_&n${x4Qo$^wtl^!NsL(0KqzoPUA%I>~>1Bp0*jy{((!^)XSO}Fv{ z3L4f*LjQQXY-KX1=_6*wWdf{~YiUlKU zLa#{?nwGO*G8#rvMXUqNgPe1VJFt_L2*RcHBRUf`df= z_dw@X|17JY_Ze4s?N-(Q1z=)KfXMg%uzvjX`#b+u4CWxwwi9%2_1|%+AKv~|^<#W7 zCZ?-pL5ERrkZAiL=-l!*!Z!wzvwygy#rYQi!jRadZ+G#Mtf1VG?8hIA166{&DOR zVBGrO>e7F_R_@Q|@-<*?TlFlpbG_!%5+lIDw(iNC8*@eSJPsJOmN37CVYlAJNjRF zzgPYi9ABJ{FMHlm^yfTA=Kr0DJFlKS{%8jg??+=GeBUFXy|e2ZC~D(q|1^`g2>5GE z-oaM!-rXhO{Q7!?I5N905&|A#_)!7h&v0G9pJn(90-j^|%K|>i@YflRBJTPSliy@3 z#~YaayA0=jKF9D61p6nLd{w~lFCS^jUMh1r&*FS1;BPbeM*;th$#Vk!4wG*Q_{U7< z&oN&Ab%qC7evYqZ@=5{6-$A6!0v=^@n}COz+$G=%Ci6Xvd7ZDSMw+Giov?cee5p7~ N;UN|WXO0J_zW{)t0%!mL literal 0 HcmV?d00001 diff --git a/libprotobuf2jansson/Makefile b/libprotobuf2jansson/Makefile new file mode 100644 index 0000000..31e58ae --- /dev/null +++ b/libprotobuf2jansson/Makefile @@ -0,0 +1,678 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# libprotobuf2jansson/Makefile. Generated from Makefile.in by configure. + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + + + +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/protobuf2jansson +pkgincludedir = $(includedir)/protobuf2jansson +pkglibdir = $(libdir)/protobuf2jansson +pkglibexecdir = $(libexecdir)/protobuf2jansson +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = x86_64-unknown-linux-gnu +host_triplet = x86_64-unknown-linux-gnu +target_triplet = x86_64-unknown-linux-gnu +subdir = libprotobuf2jansson +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +libprotobuf2jansson_la_LIBADD = +am_libprotobuf2jansson_la_OBJECTS = \ + libprotobuf2jansson_la-libprotobuf2jansson.lo \ + libprotobuf2jansson_la-varint.lo \ + libprotobuf2jansson_la-meta_descriptor.json.lo +libprotobuf2jansson_la_OBJECTS = $(am_libprotobuf2jansson_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +am__v_lt_1 = +libprotobuf2jansson_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libprotobuf2jansson_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_$(V)) +am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I. +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libprotobuf2jansson_la_SOURCES) +DIST_SOURCES = $(libprotobuf2jansson_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = aclocal-1.14 +AMTAR = $${TAR-tar} +AM_DEFAULT_VERBOSITY = 1 +AR = ar +AUTOCONF = autoconf +AUTOHEADER = autoheader +AUTOMAKE = automake-1.14 +AWK = gawk +CC = clang +CCDEPMODE = depmode=gcc3 +CFLAGS = -g -O2 -std=c11 -O0 -g +CPP = clang -E +CPPFLAGS = +CYGPATH_W = echo +DEFS = -DPACKAGE_NAME=\"protobuf2jansson\" -DPACKAGE_TARNAME=\"protobuf2jansson\" -DPACKAGE_VERSION=\"1.0\" -DPACKAGE_STRING=\"protobuf2jansson\ 1.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"protobuf2jansson\" -DVERSION=\"1.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" +DEPDIR = .deps +DLLTOOL = false +DSYMUTIL = +DUMPBIN = +ECHO_C = +ECHO_N = -n +ECHO_T = +EGREP = /bin/grep -E +EXEEXT = +FGREP = /bin/grep -F +GREP = /bin/grep +INSTALL = /usr/bin/install -c +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_PROGRAM = ${INSTALL} +INSTALL_SCRIPT = ${INSTALL} +INSTALL_STRIP_PROGRAM = $(install_sh) -c -s +LD = /usr/bin/ld -m elf_x86_64 +LDFLAGS = +LIBOBJS = +LIBS = +LIBTOOL = $(SHELL) $(top_builddir)/libtool +LIPO = +LN_S = ln -s +LTLIBOBJS = +MAKEINFO = makeinfo +MANIFEST_TOOL = : +MKDIR_P = /bin/mkdir -p +NM = /usr/bin/nm -B +NMEDIT = +OBJDUMP = objdump +OBJEXT = o +OTOOL = +OTOOL64 = +PACKAGE = protobuf2jansson +PACKAGE_BUGREPORT = +PACKAGE_NAME = protobuf2jansson +PACKAGE_STRING = protobuf2jansson 1.0 +PACKAGE_TARNAME = protobuf2jansson +PACKAGE_URL = +PACKAGE_VERSION = 1.0 +PATH_SEPARATOR = : +PKG_CONFIG = /usr/bin/pkg-config +PKG_CONFIG_LIBDIR = +PKG_CONFIG_PATH = :/usr/local/lib/:/usr/local/lib/:/usr/local/lib/pkgconfig +RANLIB = ranlib +SED = /bin/sed +SET_MAKE = +SHELL = /bin/bash +STRIP = strip +VERSION = 1.0 +abs_builddir = /home/chris/workspace/protobuf2jansson/libprotobuf2jansson +abs_srcdir = /home/chris/workspace/protobuf2jansson/libprotobuf2jansson +abs_top_builddir = /home/chris/workspace/protobuf2jansson +abs_top_srcdir = /home/chris/workspace/protobuf2jansson +ac_ct_AR = ar +ac_ct_CC = clang +ac_ct_DUMPBIN = +am__include = include +am__leading_dot = . +am__quote = +am__tar = $${TAR-tar} chof - "$$tardir" +am__untar = $${TAR-tar} xf - +bindir = ${exec_prefix}/bin +build = x86_64-unknown-linux-gnu +build_alias = +build_cpu = x86_64 +build_os = linux-gnu +build_vendor = unknown +builddir = . +datadir = ${datarootdir} +datarootdir = ${prefix}/share +docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} +dvidir = ${docdir} +exec_prefix = ${prefix} +host = x86_64-unknown-linux-gnu +host_alias = +host_cpu = x86_64 +host_os = linux-gnu +host_vendor = unknown +htmldir = ${docdir} +includedir = ${prefix}/include +infodir = ${datarootdir}/info +install_sh = ${SHELL} /home/chris/install-sh +jansson_CFLAGS = -I/usr/local/include +jansson_LIBS = -L/usr/local/lib -ljansson +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/libexec +localedir = ${datarootdir}/locale +localstatedir = ${prefix}/var +mandir = ${datarootdir}/man +mkdir_p = $(MKDIR_P) +oldincludedir = /usr/include +pdfdir = ${docdir} +prefix = /usr/local +program_transform_name = s,x,x, +psdir = ${docdir} +sbindir = ${exec_prefix}/sbin +sharedstatedir = ${prefix}/com +srcdir = . +sysconfdir = ${prefix}/etc +target = x86_64-unknown-linux-gnu +target_alias = +target_cpu = x86_64 +target_os = linux-gnu +target_vendor = unknown +top_build_prefix = ../ +top_builddir = .. +top_srcdir = .. + +####################################### +# The list of libraries we are building seperated by spaces. +# The 'lib_' indicates that these build products will be installed +# in the $(libdir) directory. For example /usr/lib +lib_LTLIBRARIES = libprotobuf2jansson.la + +####################################### +# Build information for each library + +# Sources for libprotobuf2jansson +libprotobuf2jansson_la_SOURCES = libprotobuf2jansson.c varint.c meta_descriptor.json.c + +# Linker options libprotobuf2janssonProgram +libprotobuf2jansson_la_LDFLAGS = $(jansson_LIBS) + +# Compiler options. Here we are adding the include directory +# to be searched for headers included in the source code. +libprotobuf2jansson_la_CPPFLAGS = $(jansson_CFLAGS) -I$(top_srcdir)/include +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu libprotobuf2jansson/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu libprotobuf2jansson/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libprotobuf2jansson.la: $(libprotobuf2jansson_la_OBJECTS) $(libprotobuf2jansson_la_DEPENDENCIES) $(EXTRA_libprotobuf2jansson_la_DEPENDENCIES) + $(AM_V_CCLD)$(libprotobuf2jansson_la_LINK) -rpath $(libdir) $(libprotobuf2jansson_la_OBJECTS) $(libprotobuf2jansson_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +include ./$(DEPDIR)/libprotobuf2jansson_la-libprotobuf2jansson.Plo +include ./$(DEPDIR)/libprotobuf2jansson_la-meta_descriptor.json.Plo +include ./$(DEPDIR)/libprotobuf2jansson_la-varint.Plo + +.c.o: + $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< + $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +# $(AM_V_CC)source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(COMPILE) -c -o $@ $< + +.c.obj: + $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` + $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +# $(AM_V_CC)source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: + $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< + $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +# $(AM_V_CC)source='$<' object='$@' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LTCOMPILE) -c -o $@ $< + +libprotobuf2jansson_la-libprotobuf2jansson.lo: libprotobuf2jansson.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libprotobuf2jansson_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libprotobuf2jansson_la-libprotobuf2jansson.lo -MD -MP -MF $(DEPDIR)/libprotobuf2jansson_la-libprotobuf2jansson.Tpo -c -o libprotobuf2jansson_la-libprotobuf2jansson.lo `test -f 'libprotobuf2jansson.c' || echo '$(srcdir)/'`libprotobuf2jansson.c + $(AM_V_at)$(am__mv) $(DEPDIR)/libprotobuf2jansson_la-libprotobuf2jansson.Tpo $(DEPDIR)/libprotobuf2jansson_la-libprotobuf2jansson.Plo +# $(AM_V_CC)source='libprotobuf2jansson.c' object='libprotobuf2jansson_la-libprotobuf2jansson.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libprotobuf2jansson_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libprotobuf2jansson_la-libprotobuf2jansson.lo `test -f 'libprotobuf2jansson.c' || echo '$(srcdir)/'`libprotobuf2jansson.c + +libprotobuf2jansson_la-varint.lo: varint.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libprotobuf2jansson_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libprotobuf2jansson_la-varint.lo -MD -MP -MF $(DEPDIR)/libprotobuf2jansson_la-varint.Tpo -c -o libprotobuf2jansson_la-varint.lo `test -f 'varint.c' || echo '$(srcdir)/'`varint.c + $(AM_V_at)$(am__mv) $(DEPDIR)/libprotobuf2jansson_la-varint.Tpo $(DEPDIR)/libprotobuf2jansson_la-varint.Plo +# $(AM_V_CC)source='varint.c' object='libprotobuf2jansson_la-varint.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libprotobuf2jansson_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libprotobuf2jansson_la-varint.lo `test -f 'varint.c' || echo '$(srcdir)/'`varint.c + +libprotobuf2jansson_la-meta_descriptor.json.lo: meta_descriptor.json.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libprotobuf2jansson_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libprotobuf2jansson_la-meta_descriptor.json.lo -MD -MP -MF $(DEPDIR)/libprotobuf2jansson_la-meta_descriptor.json.Tpo -c -o libprotobuf2jansson_la-meta_descriptor.json.lo `test -f 'meta_descriptor.json.c' || echo '$(srcdir)/'`meta_descriptor.json.c + $(AM_V_at)$(am__mv) $(DEPDIR)/libprotobuf2jansson_la-meta_descriptor.json.Tpo $(DEPDIR)/libprotobuf2jansson_la-meta_descriptor.json.Plo +# $(AM_V_CC)source='meta_descriptor.json.c' object='libprotobuf2jansson_la-meta_descriptor.json.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libprotobuf2jansson_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libprotobuf2jansson_la-meta_descriptor.json.lo `test -f 'meta_descriptor.json.c' || echo '$(srcdir)/'`meta_descriptor.json.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(libdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libLTLIBRARIES install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/libprotobuf2jansson/Makefile.am b/libprotobuf2jansson/Makefile.am new file mode 100644 index 0000000..dc20560 --- /dev/null +++ b/libprotobuf2jansson/Makefile.am @@ -0,0 +1,19 @@ +####################################### +# The list of libraries we are building seperated by spaces. +# The 'lib_' indicates that these build products will be installed +# in the $(libdir) directory. For example /usr/lib +lib_LTLIBRARIES = libprotobuf2jansson.la + +####################################### +# Build information for each library + +# Sources for libprotobuf2jansson +libprotobuf2jansson_la_SOURCES = libprotobuf2jansson.c varint.c meta_descriptor.json.c + +# Linker options libprotobuf2janssonProgram +libprotobuf2jansson_la_LDFLAGS = $(jansson_LIBS) + +# Compiler options. Here we are adding the include directory +# to be searched for headers included in the source code. +libprotobuf2jansson_la_CPPFLAGS = $(jansson_CFLAGS) -I$(top_srcdir)/include + diff --git a/libprotobuf2jansson/libprotobuf2jansson.c b/libprotobuf2jansson/libprotobuf2jansson.c new file mode 100644 index 0000000..be62ce1 --- /dev/null +++ b/libprotobuf2jansson/libprotobuf2jansson.c @@ -0,0 +1,400 @@ +#include "../include/protobuf2jansson.h" + +#include +#include +#include +#include +#include +#include "minunit.h" +#include "varint.h" +#include "meta_descriptor.json.h" + +#define WIRE_TYPE_VARINT 0 +#define WIRE_TYPE_64_BIT 1 +#define WIRE_TYPE_LENGTH_DELIMITED 2 +#define WIRE_TYPE_32_BIT 3 + +#define TYPE_INT32 "TYPE_INT32" +#define TYPE_INT64 "TYPE_INT64" +#define TYPE_UINT32 "TYPE_UINT32" +#define TYPE_UINT64 "TYPE_UINT64" +#define TYPE_SINT32 "TYPE_SINT32" +#define TYPE_SINT64 "TYPE_SINT64" +#define TYPE_BOOL "TYPE_BOOL" +#define TYPE_ENUM "TYPE_ENUM" + +#define TYPE_FIXED64 "TYPE_FIXED64" +#define TYPE_SFIXED64 "TYPE_SFIXED64" +#define TYPE_DOUBLE "TYPE_DOUBLE" + +#define TYPE_STRING "TYPE_STRING" +#define TYPE_BYTES "TYPE_BYTES" +#define TYPE_MESSAGE "TYPE_MESSAGE" + +#define TYPE_FIXED32 "TYPE_FIXED32" +#define TYPE_SFIXED32 "TYPE_SFIXED32" +#define TYPE_FLOAT "TYPE_FLOAT" + +#define LABEL_REPEATED "LABEL_REPEATED" + +int wire_type_from_message_type(char *message_type) { + if (strcmp(TYPE_INT32, message_type) == 0) return WIRE_TYPE_VARINT; + if (strcmp(TYPE_INT64, message_type) == 0) return WIRE_TYPE_VARINT; + if (strcmp(TYPE_UINT32, message_type) == 0) return WIRE_TYPE_VARINT; + if (strcmp(TYPE_UINT64, message_type) == 0) return WIRE_TYPE_VARINT; + if (strcmp(TYPE_SINT32, message_type) == 0) return WIRE_TYPE_VARINT; + if (strcmp(TYPE_SINT64, message_type) == 0) return WIRE_TYPE_VARINT; + if (strcmp(TYPE_BOOL, message_type) == 0) return WIRE_TYPE_VARINT; + if (strcmp(TYPE_ENUM, message_type) == 0) return WIRE_TYPE_VARINT; + + if (strcmp(TYPE_FIXED64, message_type) == 0) return WIRE_TYPE_64_BIT; + if (strcmp(TYPE_SFIXED64, message_type) == 0) return WIRE_TYPE_64_BIT; + if (strcmp(TYPE_DOUBLE, message_type) == 0) return WIRE_TYPE_64_BIT; + + if (strcmp(TYPE_STRING, message_type) == 0) return WIRE_TYPE_LENGTH_DELIMITED; + if (strcmp(TYPE_BYTES, message_type) == 0) return WIRE_TYPE_LENGTH_DELIMITED; + if (strcmp(TYPE_MESSAGE, message_type) == 0) return WIRE_TYPE_LENGTH_DELIMITED; + + if (strcmp(TYPE_FIXED32, message_type) == 0) return WIRE_TYPE_32_BIT; + if (strcmp(TYPE_SFIXED32, message_type) == 0) return WIRE_TYPE_32_BIT; + if (strcmp(TYPE_FLOAT, message_type) == 0) return WIRE_TYPE_32_BIT; + + exit(1); +} + +json_t *p2j_get_field_by_number(json_t *message, json_int_t number) { + mu_return_null_if_false(json_is_object(message)); + json_t *fields = json_object_get(message, "field"); + + // loop through the array until we find the field + for (size_t j = 0; j < json_array_size(fields); j++) { + json_t *field = json_array_get(fields, j); + json_t *field_number = json_object_get(field, "number"); + mu_return_null_if_false(json_is_integer(field_number)); + mu_print(json_integer_value(field_number)); + mu_print(number); + if (json_integer_value(field_number) == number) { + //json_incref(field); // returns a borrowed field + return field; + } + } + return NULL; +} + +// destroys type_name, by changing the last dot into a \x00 and returning pointers to package and name within the destroyed argument +// returns pointer to package name +// update: it looks like it's not that last dot that is the separator, but the first dot is followed by a captial letter +char *p2j_package_and_name_from_type_name(char *type_name__destroyed, char **package_out, char **name_list_out, size_t name_list_length) { + mu_return_null_if_false(type_name__destroyed); + size_t type_name_length = strlen(type_name__destroyed); + mu_return_null_if(type_name_length < 2); + mu_return_null_if(type_name__destroyed[0] != '.'); + + // find the first dot which is followed by a capital letter, p starts at the first character of type_name_destroyed (the following character is, by definition, \x00. + size_t i = 0; + char *p; + for (p = type_name__destroyed; p <= type_name__destroyed + type_name_length; p++) { + if (*p == '.' && isupper(*(p+1))) { + // p now points at the first dot which is followed by a capital letter + if (i > (name_list_length - 1)) return NULL; // abort if there are more parts than storage + name_list_out[i++] = p + 1; + //mu_print(*name_list_out[i-1]); + *p = '\x00'; // replace the last dot, which separated package from name, with a null to terminate the precedingi string + } + } + // now get the package string + *package_out = type_name__destroyed + 1; + //mu_print(*package_out); + + return *package_out; // success +} + +/* +char *p2j_package_and_name_from_type_name(char *type_name__destroyed, char **package_out, char **name_out) { + mu_return_null_if_false(type_name__destroyed); + size_t type_name_length = strlen(type_name__destroyed); + mu_return_null_if(type_name_length < 2); + mu_return_null_if(type_name__destroyed[0] != '.'); + + // find the last dot, p starts at the last character of type_name_destroyed (the following character is, by definition, \x00. + char *p; // = type_name__destroyed + type_name_length - 1; + for (p = type_name__destroyed + type_name_length - 1; *p != '.' && p > type_name__destroyed; p--); + // p now points at the last dot + *name_out = p + 1; + //mu_print(*name_out); + // now get the package string + *package_out = type_name__destroyed + 1; + //mu_print(*package_out); + *p = '\x00'; // replace the last dot, which separated package from name, with a null to terminate the package string + + return *package_out; // success +} +*/ + +json_t *p2j_get_nested_message_by_name(json_t *nodes, char **remaining_names) { + //mu_print_json(nodes); + //mu_print(remaining_names[0]); + + // nodes is a json array, either file.messageType at the top level, + // or file.messageType[n].nestedType[n].nestedType[m]... at lower levels + mu_return_null_if_null(remaining_names[0]); + + // loop through the array until we find the message + for (size_t j = 0; j < json_array_size(nodes); j++) { + json_t *node = json_array_get(nodes, j); + json_t *jname = json_object_get(node, "name"); + mu_return_null_if_false(json_is_string(jname)); + //mu_print(json_string_value(jname)); + //mu_print(name); + + if (strcmp(json_string_value(jname), remaining_names[0]) == 0) { + if ((*(remaining_names + 1)) == NULL) { // at the leaf + return node; + } else { // otherwise recurse into the next level + json_t *nestedTypes = json_object_get(node, "nestedType"); + mu_return_null_if_null(nestedTypes); + return p2j_get_nested_message_by_name(nestedTypes, remaining_names + 1); + } + } + } + + return NULL; +} + +// TODO: this may be inefficient and could be sped up by the use of a hash table +json_t *p2j_get_message_by_name(json_t *descriptor, const char *type_name) { + char *package; + //mu_return_null_if_false(descriptor); + size_t type_name_length = strlen(type_name) + 1; + char tmp[type_name_length]; + mu_return_null_if_false(strncpy(tmp, type_name, type_name_length + 1)); + //mu_print((char *)tmp); + //mu_return_null_if(tmp[0] != '.'); + char *name_list[] = {NULL, NULL, NULL, NULL}; + mu_return_null_if_false(p2j_package_and_name_from_type_name(tmp, &package, name_list, sizeof(name_list)/sizeof(name_list[0]))); + + mu_return_null_if_false(json_is_object(descriptor)); + json_t *files = json_object_get(descriptor, "file"); + mu_return_null_if_false(json_is_array(files)); + + // loop through the files (if there is more than one) + for (size_t i = 0; i < json_array_size(files); i++) { + //TODO: only look at "files" that declasre the correct package + + json_t *file = json_array_get(files, i); + mu_return_null_if_false(json_is_object(descriptor)); + json_t *message_types = json_object_get(file, "messageType"); + mu_return_null_if_false(json_is_array(message_types)); + + return p2j_get_nested_message_by_name(message_types, name_list); + + } + + return NULL; +} + +json_t *p2j_protobuf2varint(json_t *desc, const char *type, const char *message_name, const char *buffer, size_t length, size_t *bytes_parsed) { + mu_print((uint8_t *)desc); + mu_print(type); + mu_print(message_name); + mu_print((uint8_t *)buffer); + mu_print(length); + mu_print((uint8_t *)bytes_parsed); + + size_t num; + size_t varint; + enum p2j_varint_result_enum result = p2j_varint_decode((uint8_t *)buffer, length, (size_t *) &varint, &num); + mu_return_null_if(result != P2J_VARINT_PARSED); + + json_t *value = NULL; + if (strcmp(type, TYPE_INT32) == 0) { + value = json_integer(varint); + } else if (strcmp(type, TYPE_SINT32) == 0) { + exit(3); + } else if (strcmp(type, TYPE_BOOL) == 0) { + value = json_boolean(varint); + } else if (strcmp(type, TYPE_ENUM) == 0) { + // FIXME: we should allow this to return either a JSON int or a JSNO string under user control + value = json_integer(varint); + } + *bytes_parsed = num; + mu_print_json(value); + return value; +} +//json_t *p2j_protobuf2_64bit(json_t *desc, char *type, char *message_name, char *buffer, size_t length, size_t *bytes_parsed) { +// return NULL; +//} +json_t *p2j_protobuf2length_delimited(json_t *desc, const char *type, const char *message_name, const json_t *field, const char *buffer, size_t length, size_t *bytes_parsed) { + mu_print((uint8_t *)desc); + mu_print(type); + mu_print(message_name); + mu_print((uint8_t *)buffer); + mu_print(length); + mu_print((uint8_t *)bytes_parsed); + + + size_t num; + json_int_t message_length; + enum p2j_varint_result_enum result = p2j_varint_decode((uint8_t *)buffer, length, (size_t *) &message_length, &num); + mu_return_null_if(result != P2J_VARINT_PARSED); + buffer += num; length -= num; + + mu_print(message_length); + + mu_print(num); + + *bytes_parsed = num + message_length; + + json_t *value = NULL; + if (strcmp(type, TYPE_STRING) == 0) { + value = json_stringn(buffer, message_length); + } else if (strcmp(type, TYPE_BYTES) == 0) { + // FIXME: base64, HTML or hex encode this + value = json_stringn(buffer, message_length); + } else if (strcmp(type, TYPE_MESSAGE) == 0) { + value = p2j_protobuf2json_object(desc, message_name, buffer, message_length); + } + *bytes_parsed = num + message_length; + mu_print_json(value); + return value; +} +//json_t *p2j_protobuf2_32bit(json_t *desc, char *type, char *message_name, char *buffer, size_t length, size_t *bytes_parsed) { +// return NULL; +//} + + +json_t *p2j_protobuf2json_object(json_t *desc, const char *message_name, const char *buffer, size_t length) { + mu_print((char *)">>>>>>>>"); + //json_error_t error; + + mu_print(message_name); + + json_t *ret = json_object(); + + while (length > 0) { + mu_print((unsigned char*)buffer); + mu_print(length); + // first (try to) read a varint from the buffer, containing the field number (<<3) and the type + size_t bytes_parsed = 0; + uint64_t varint = 0; + enum p2j_varint_result_enum result = p2j_varint_decode((uint8_t *)buffer, length, &varint, &bytes_parsed); + mu_print(varint); + mu_print(bytes_parsed); + buffer += bytes_parsed; length -= bytes_parsed; + mu_return_null_if(result != P2J_VARINT_PARSED); + + + json_int_t field_num = varint >> 3; + json_int_t field_wire_type = varint & 0x7; + + mu_print(field_num); + mu_print(field_wire_type); + + // get the appropriate message descriptor + json_t *message = p2j_get_message_by_name(desc, message_name); + mu_return_null_if(message == NULL); + //mu_print_json(message); + + // check that the field wire type agrees with one present in the descriptor + // note: multiple field types maps to single wire_types - e.g. TYPE_STRING and TYPE_MESSAGE are both wire_type 2, hence the lookup + // https://developers.google.com/protocol-buffers/docs/encoding#structure + json_t *field = p2j_get_field_by_number(message, field_num); + mu_return_null_if(field == NULL); + //mu_print_json(field); + char *type = (char *)json_string_value(json_object_get(field, "type")); + mu_print(type); + json_int_t looked_up_field_wire_type = wire_type_from_message_type(type); // see notes for field_wire_type_lookup + mu_print(looked_up_field_wire_type); + mu_return_null_if(field_wire_type != looked_up_field_wire_type); + + char *key = (char *)json_string_value(json_object_get(field, "name")); + mu_return_null_if_null(key); + json_t *value = NULL; // child value to add to this object, with a key from the field.name + bytes_parsed = 0; + switch (field_wire_type) { + case WIRE_TYPE_VARINT: + value = p2j_protobuf2varint(desc, type, message_name, buffer, length, &bytes_parsed); + //exit(3); + break; + case WIRE_TYPE_64_BIT: + //value = p2j_protobuf2_64bit(desc, type, message_name, buffer, length, &bytes_parsed); + exit(4); + break; + case WIRE_TYPE_LENGTH_DELIMITED: + mu_print((uint8_t*)buffer); + const char *type_name = json_string_value(json_object_get(field, "typeName")); + mu_print(type_name); + value = p2j_protobuf2length_delimited(desc, type, type_name, field, buffer, length, &bytes_parsed); + mu_print(bytes_parsed); + + break; + case WIRE_TYPE_32_BIT: + //value = p2j_protobuf2_32bit(desc, type, message_name, buffer, length, &bytes_parsed); + exit(5); + break; + } + +/* + fflush(stdout); + fflush(stderr); + printf("vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\n"); + fflush(stdout); + fflush(stderr); + + mu_print_json(field); + + mu_print(key); + mu_print_json(value); + + fflush(stdout); + fflush(stderr); + printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"); + fflush(stdout); + fflush(stderr); +*/ + + + + + buffer += bytes_parsed; length -= bytes_parsed; + mu_return_null_if_null(value); + + const char *field_label = json_string_value(json_object_get(field, "label")); + mu_print(field_label); + if (strcmp(field_label, LABEL_REPEATED) == 0) { + // repeated fields in protocol buffers are represented as arrays in JSON + json_t *array = json_object_get(ret, key); + if (array == NULL) { // array not created yet + mu_print((char *)"created new array"); + array = json_array(); + mu_return_null_if_null(array); + json_object_set(ret, key, array); + json_decref(array); + } + mu_print_json(array); + mu_print_json(ret); + mu_print(key); + mu_return_null_if_false(json_is_array(array)); + json_array_append(array, value); + mu_print((char *)"appended to array"); + mu_print_json(array); + } else { + // FIXME: for correctness, this should check for an existing object property "key" + // and perform a deep tree merge + json_object_set(ret, key, value); + } + json_decref(value); + + mu_print((char *)"========"); + } + mu_print((char *)"<<<<<<<<"); + return ret; +} + + + + +void +print_hello(){ + printf("$(message)\n"); +} diff --git a/libprotobuf2jansson/libprotobuf2jansson.la b/libprotobuf2jansson/libprotobuf2jansson.la new file mode 100644 index 0000000..d48074c --- /dev/null +++ b/libprotobuf2jansson/libprotobuf2jansson.la @@ -0,0 +1,41 @@ +# libprotobuf2jansson.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libprotobuf2jansson.so.0' + +# Names of this library. +library_names='libprotobuf2jansson.so.0.0.0 libprotobuf2jansson.so.0 libprotobuf2jansson.so' + +# The name of the static archive. +old_library='libprotobuf2jansson.a' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' -L/usr/local/lib /usr/local/lib/libjansson.la' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libprotobuf2jansson. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=no + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/lib' diff --git a/libprotobuf2jansson/libprotobuf2jansson_la-libprotobuf2jansson.lo b/libprotobuf2jansson/libprotobuf2jansson_la-libprotobuf2jansson.lo new file mode 100644 index 0000000..041ddc3 --- /dev/null +++ b/libprotobuf2jansson/libprotobuf2jansson_la-libprotobuf2jansson.lo @@ -0,0 +1,12 @@ +# libprotobuf2jansson_la-libprotobuf2jansson.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libprotobuf2jansson_la-libprotobuf2jansson.o' + +# Name of the non-PIC object +non_pic_object='libprotobuf2jansson_la-libprotobuf2jansson.o' + diff --git a/libprotobuf2jansson/libprotobuf2jansson_la-libprotobuf2jansson.o b/libprotobuf2jansson/libprotobuf2jansson_la-libprotobuf2jansson.o new file mode 100644 index 0000000000000000000000000000000000000000..b035b3613b464fa8d6ffaaf2e3720eeff9bed46b GIT binary patch literal 43544 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 QXTKxDet8#5Gvmp81QN7rwc9nG-nF}( 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 literal 0 HcmV?d00001 diff --git a/libprotobuf2jansson/libprotobuf2jansson_la-varint.lo b/libprotobuf2jansson/libprotobuf2jansson_la-varint.lo new file mode 100644 index 0000000..cbc527f --- /dev/null +++ b/libprotobuf2jansson/libprotobuf2jansson_la-varint.lo @@ -0,0 +1,12 @@ +# libprotobuf2jansson_la-varint.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libprotobuf2jansson_la-varint.o' + +# Name of the non-PIC object +non_pic_object='libprotobuf2jansson_la-varint.o' + diff --git a/libprotobuf2jansson/libprotobuf2jansson_la-varint.o b/libprotobuf2jansson/libprotobuf2jansson_la-varint.o new file mode 100644 index 0000000000000000000000000000000000000000..8d390e52fd58453354adbd621ae9a11372596de6 GIT binary patch literal 4928 zcmb_fU2GIp6uz_5ZMVD7?T`Euvm!sm&|RQa3#Pc04s5mCl7%A1m}Pc5?Jn%jZgys{ z5D5^XVXYz7C*zYQKB!59PxwbdjfphAw8kjtgH{ujCMM_u2@#Td&YgR=)4Nk+)RWBI zbH4LC=iK=_qx9|bNRmt#Nn{U^xZqev>lTD4Wus&*Sw#k8<)35a)4#{c*3DRXa5h$s z--umPX3*qwWtzms;-HI9#>NylfS2PpW4oq;=f4Dl4>1#<11a__m%6yR#moA?kT%kWf1n21QV-&QFAJxpgM)!qfAXS~Ry z^$^W7o?%ium5wrLFO`nav{GFsl@8dF&rhWRub9bJ*W+IBj7OJH`_Wq-zlxKq#R%RS zx=m_4wLTh)(Hnp`%@D74 zBj9@ifdC0RUhnhE&-WEdqLAnH1!eYmTTDHMKM@D=EcELP|l(w@= z;WA$}U_7J^&XRPuVL6;7dPyLM2|1ybvbq^gqc!6*_B~l|Cjoqw-`92iDbI!$UzhJK zUv|Q0UAg|t#KaXje?(sC3r|c~9xsI52&T4AFC^FuQgP?8q#ZOlq@@c(SPCI2I2P=1 z0=a@d60&q7JEChtA*hGoX2cc8R#BugYKh={EKohtku(X87KKjWaZpC~lm;x)V9L@> zE0oTu5c`ByGO`6d)E@3=+hI{nd#Ke^M~p~9=~KE7D#`Ya$Z%Fyb6Z2LDb;{7z`U>T za2$QM^46qDBvZ(1k#we%H6qU!O2>_&n${x4Qo$^wtl^!NsL(0KqzoPUA%I>~>1Bp0*jy{((!^)XSO}Fv{ z3L4f*LjQQXY-KX1=_6*wWdf{~YiUlKU zLa#{?nwGO*G8#rvMXUqNgPe1VJFt_L2*RcHBRUf`df= z_dw@X|17JY_Ze4s?N-(Q1z=)KfXMg%uzvjX`#b+u4CWxwwi9%2_1|%+AKv~|^<#W7 zCZ?-pL5ERrkZAiL=-l!*!Z!wzvwygy#rYQi!jRadZ+G#Mtf1VG?8hIA166{&DOR zVBGrO>e7F_R_@Q|@-<*?TlFlpbG_!%5+lIDw(iNC8*@eSJPsJOmN37CVYlAJNjRF zzgPYi9ABJ{FMHlm^yfTA=Kr0DJFlKS{%8jg??+=GeBUFXy|e2ZC~D(q|1^`g2>5GE z-oaM!-rXhO{Q7!?I5N905&|A#_)!7h&v0G9pJn(90-j^|%K|>i@YflRBJTPSliy@3 z#~YaayA0=jKF9D61p6nLd{w~lFCS^jUMh1r&*FS1;BPbeM*;th$#Vk!4wG*Q_{U7< z&oN&Ab%qC7evYqZ@=5{6-$A6!0v=^@n}COz+$G=%Ci6Xvd7ZDSMw+Giov?cee5p7~ N;UN|WXO0J_zW{)t0%!mL literal 0 HcmV?d00001 diff --git a/libprotobuf2jansson/meta_descriptor.json.c b/libprotobuf2jansson/meta_descriptor.json.c new file mode 100644 index 0000000..448cd1f --- /dev/null +++ b/libprotobuf2jansson/meta_descriptor.json.c @@ -0,0 +1,2133 @@ +unsigned char p2j_meta_descriptor_json[] = { + 0x7b, 0x0a, 0x20, 0x20, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x3a, 0x20, + 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x73, + 0x72, 0x63, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x70, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, + 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x46, 0x69, 0x6c, 0x65, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x74, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x3a, 0x20, 0x5b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, + 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, + 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x3a, 0x20, 0x5b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, + 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, + 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, + 0x4e, 0x47, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x70, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x32, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, + 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, + 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, + 0x65, 0x6e, 0x63, 0x79, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, + 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, + 0x47, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x3a, 0x20, 0x31, 0x30, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, + 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x77, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x31, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, + 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, + 0x54, 0x45, 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, + 0x54, 0x33, 0x32, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, + 0x34, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, + 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, + 0x45, 0x41, 0x54, 0x45, 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x3a, 0x20, 0x35, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, + 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x36, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, + 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, + 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x37, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, + 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, + 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, + 0x38, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, + 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, + 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x39, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, + 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, + 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x44, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x3a, 0x20, 0x5b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, + 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, + 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, + 0x49, 0x4e, 0x47, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x22, 0x3a, 0x20, 0x32, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, + 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, + 0x20, 0x36, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, + 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x33, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, + 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, + 0x41, 0x54, 0x45, 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, + 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, + 0x3a, 0x20, 0x34, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, + 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x3a, 0x20, 0x35, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, + 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6f, 0x6e, 0x65, + 0x6f, 0x66, 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x38, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, + 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, + 0x54, 0x45, 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x22, 0x3a, 0x20, 0x37, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, + 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x5d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, + 0x70, 0x65, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x3a, 0x20, + 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, + 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, + 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x65, 0x6e, 0x64, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x22, 0x3a, 0x20, 0x32, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, + 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, + 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x49, 0x4e, 0x54, 0x33, 0x32, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x3a, 0x20, 0x31, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, + 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, + 0x33, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, + 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, + 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x49, 0x4e, 0x54, 0x33, 0x32, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x34, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, + 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, + 0x20, 0x35, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, + 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x36, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, + 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, + 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, + 0x54, 0x52, 0x49, 0x4e, 0x47, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x32, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, + 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, + 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, + 0x52, 0x49, 0x4e, 0x47, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, + 0x3a, 0x20, 0x37, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, + 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x22, 0x3a, 0x20, 0x39, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, + 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, + 0x20, 0x38, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, + 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x65, + 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x5b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, + 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, + 0x4c, 0x4f, 0x41, 0x54, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x32, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, + 0x54, 0x36, 0x34, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x33, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, + 0x54, 0x36, 0x34, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x34, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, + 0x33, 0x32, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x35, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, + 0x44, 0x36, 0x34, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x36, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, + 0x45, 0x44, 0x33, 0x32, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x37, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, + 0x4f, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x38, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, + 0x4e, 0x47, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x39, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, + 0x54, 0x45, 0x53, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x32, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, + 0x4e, 0x54, 0x33, 0x32, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, + 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, + 0x4e, 0x55, 0x4d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x34, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, + 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, + 0x20, 0x31, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x22, 0x3a, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x37, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x38, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, + 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, + 0x3a, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, + 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x22, 0x3a, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x4c, + 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, + 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x33, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, + 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, + 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x45, 0x6e, 0x75, 0x6d, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x3a, + 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, + 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, + 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, + 0x54, 0x52, 0x49, 0x4e, 0x47, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x32, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, + 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, + 0x47, 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, + 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, + 0x3a, 0x20, 0x31, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, + 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x32, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, + 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, + 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, + 0x4e, 0x54, 0x33, 0x32, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, + 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, + 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x3a, 0x20, 0x5b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, + 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, + 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, + 0x4e, 0x47, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x22, 0x3a, 0x20, 0x32, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, + 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, + 0x33, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, + 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, + 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x3a, 0x20, 0x5b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, + 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, + 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, + 0x49, 0x4e, 0x47, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x32, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, + 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, + 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, + 0x52, 0x49, 0x4e, 0x47, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, + 0x33, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, + 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, + 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x34, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, + 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, + 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x3a, 0x20, 0x5b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x22, 0x3a, 0x20, 0x31, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, + 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x22, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x3a, 0x20, 0x38, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, + 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, + 0x20, 0x31, 0x30, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, + 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, + 0x61, 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x32, + 0x30, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, + 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, + 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x42, 0x4f, 0x4f, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, + 0x3a, 0x20, 0x32, 0x37, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, + 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x22, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, + 0x5f, 0x66, 0x6f, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x39, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, + 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, + 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, + 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x53, 0x50, 0x45, 0x45, + 0x44, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x67, 0x6f, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x31, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, + 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, + 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, + 0x49, 0x4e, 0x47, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x63, 0x63, 0x5f, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x36, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, + 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, + 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x66, 0x61, + 0x6c, 0x73, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6a, 0x61, 0x76, + 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x37, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, + 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, + 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, + 0x4f, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x66, 0x61, 0x6c, 0x73, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x70, + 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x38, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, + 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, + 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, + 0x4f, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x66, 0x61, 0x6c, 0x73, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x64, + 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, + 0x32, 0x33, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, + 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, + 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, + 0x20, 0x39, 0x39, 0x39, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, + 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x65, 0x6e, 0x75, 0x6d, + 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x4f, 0x70, + 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, + 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x53, + 0x50, 0x45, 0x45, 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, + 0x5a, 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x4c, 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, + 0x49, 0x4d, 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x33, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x65, 0x6e, 0x64, 0x22, 0x3a, 0x20, 0x35, + 0x33, 0x36, 0x38, 0x37, 0x30, 0x39, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, + 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, + 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x66, 0x61, + 0x6c, 0x73, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x5f, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x6f, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x32, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, + 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x66, 0x61, 0x6c, + 0x73, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x64, 0x65, 0x70, 0x72, + 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, + 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, + 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, + 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x66, + 0x61, 0x6c, 0x73, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, 0x6e, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x39, 0x39, 0x39, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, + 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, + 0x41, 0x54, 0x45, 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, + 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x5d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x65, 0x6e, 0x64, + 0x22, 0x3a, 0x20, 0x35, 0x33, 0x36, 0x38, 0x37, 0x30, 0x39, 0x31, 0x32, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x63, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x22, 0x3a, 0x20, 0x31, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, + 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x53, + 0x54, 0x52, 0x49, 0x4e, 0x47, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x64, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x32, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, + 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, + 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, + 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x61, 0x7a, 0x79, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, + 0x20, 0x35, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, + 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, + 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x22, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, + 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x6b, 0x65, 0x79, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x3a, 0x20, 0x39, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, + 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x77, 0x65, 0x61, 0x6b, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x30, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, + 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, + 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, + 0x4f, 0x4f, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, + 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x39, + 0x39, 0x39, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, + 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x5d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, + 0x70, 0x65, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x43, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x3a, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x43, 0x4f, 0x52, + 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x49, 0x45, + 0x43, 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x65, 0x6e, 0x64, 0x22, 0x3a, 0x20, 0x35, 0x33, + 0x36, 0x38, 0x37, 0x30, 0x39, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x3a, 0x20, 0x5b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, + 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x22, 0x3a, 0x20, 0x32, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, + 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, + 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x22, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, + 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x3a, 0x20, 0x39, 0x39, 0x39, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, + 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x22, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x65, 0x6e, 0x64, 0x22, 0x3a, 0x20, 0x35, 0x33, 0x36, + 0x38, 0x37, 0x30, 0x39, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, + 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x66, 0x61, 0x6c, + 0x73, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, 0x6e, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x39, 0x39, 0x39, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, + 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, + 0x45, 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, + 0x53, 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, + 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x5d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x65, 0x6e, 0x64, 0x22, 0x3a, + 0x20, 0x35, 0x33, 0x36, 0x38, 0x37, 0x30, 0x39, 0x31, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x64, 0x65, 0x70, 0x72, + 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x33, 0x33, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, + 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, + 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, + 0x4f, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x66, 0x61, 0x6c, 0x73, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x75, + 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, + 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x39, 0x39, + 0x39, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, + 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, + 0x45, 0x41, 0x54, 0x45, 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x5d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x5b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x3a, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x65, 0x6e, + 0x64, 0x22, 0x3a, 0x20, 0x35, 0x33, 0x36, 0x38, 0x37, 0x30, 0x39, 0x31, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x4d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x64, 0x65, + 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x33, + 0x33, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, + 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, + 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x42, 0x4f, 0x4f, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, + 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, + 0x39, 0x39, 0x39, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, + 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x3a, 0x20, + 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x22, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x65, 0x6e, 0x64, 0x22, 0x3a, 0x20, 0x35, 0x33, 0x36, 0x38, 0x37, 0x30, + 0x39, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x55, 0x6e, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, + 0x20, 0x32, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, + 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3a, + 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x22, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, + 0x33, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, + 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, + 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x34, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, + 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, + 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, + 0x54, 0x36, 0x34, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x35, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, + 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x22, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x36, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, + 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, + 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, + 0x4c, 0x45, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x37, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, + 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, + 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, + 0x59, 0x54, 0x45, 0x53, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x22, 0x3a, 0x20, 0x38, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, + 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x22, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x5d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, + 0x72, 0x74, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, + 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, + 0x49, 0x52, 0x45, 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x32, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, + 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x22, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, + 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x31, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, + 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, + 0x45, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x5d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x70, 0x61, 0x74, 0x68, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x3a, 0x20, 0x31, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, + 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, + 0x4e, 0x54, 0x33, 0x32, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x3a, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x64, 0x22, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, + 0x22, 0x73, 0x70, 0x61, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, + 0x32, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, + 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, + 0x32, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x3a, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x64, 0x22, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6c, 0x65, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x22, 0x3a, 0x20, 0x22, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, + 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x22, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x3a, 0x20, 0x22, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, + 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x22, 0x3a, 0x20, 0x34, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22, + 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, + 0x41, 0x4c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x22, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x5d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x3a, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6a, 0x61, 0x76, 0x61, + 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x4f, 0x75, + 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x3a, 0x20, 0x22, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6f, 0x70, 0x74, 0x69, + 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x22, 0x3a, 0x20, 0x22, 0x53, + 0x50, 0x45, 0x45, 0x44, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x5d, 0x0a, + 0x7d, 0x0a, 0x00 +}; +unsigned int p2j_meta_descriptor_json_len = 25551; diff --git a/libprotobuf2jansson/meta_descriptor.json.h b/libprotobuf2jansson/meta_descriptor.json.h new file mode 100644 index 0000000..bd39c53 --- /dev/null +++ b/libprotobuf2jansson/meta_descriptor.json.h @@ -0,0 +1,7 @@ +#ifndef META_DESCRIPTOR_H +#define META_DESCRIPTOR_H + +extern unsigned char p2j_meta_descriptor_json[]; +extern unsigned int p2j_meta_descriptor_json_len; + +#endif diff --git a/libprotobuf2jansson/minunit.h b/libprotobuf2jansson/minunit.h new file mode 100644 index 0000000..6028428 --- /dev/null +++ b/libprotobuf2jansson/minunit.h @@ -0,0 +1,168 @@ +#include +#include +#include +#include + +#define MAX_ERROR_MESSAGE_LENGTH 1024 + +#define mu_return_null_if_false(test) do { \ + if (!(test)) { \ + fprintf(stderr,_Generic( \ + (test), \ + long long: "[Pseudo-EXCEPTION] %20.20s:%3.0d: %s: (%lld) != true\n", \ + unsigned long: "[Pseudo-EXCEPTION] %20.20s:%3.0d: %s: (%lu) != true\n", \ + int: "[Pseudo-EXCEPTION] %20.20s:%3.0d: %s: (%i) != true\n", \ + unsigned char: "[Pseudo-EXCEPTION] %20.20s:%3.0d: %s: (%u) != true\n", \ + char *: "[Pseudo-EXCEPTION] %20.20s:%3.0d: %s: (%s) != true\n", \ + const char *: "[Pseudo-EXCEPTION] %20.20s:%3.0d: %s: (%s) != true\n", \ + unsigned char *: "[Pseudo-EXCEPTION] %20.20s:%3.0d: %s: (%p) != true\n" \ + ), __FILE__, __LINE__, #test, test \ + ); \ + fflush(stderr); \ + exit(111); \ + return NULL; \ + } \ +} while (0) + +#define mu_return_null_if(test) do { \ + if ((test)) { \ + fprintf(stderr,_Generic( \ + (test), \ + long long: "[Pseudo-EXCEPTION] %20.20s:%3.0d: %s: (%lld) == true\n", \ + unsigned long: "[Pseudo-EXCEPTION] %20.20s:%3.0d: %s: (%lu) == true\n", \ + int: "[Pseudo-EXCEPTION] %20.20s:%3.0d: %s: (%i) == true\n", \ + unsigned char: "[Pseudo-EXCEPTION] %20.20s:%3.0d: %s: (%u) == true\n", \ + char *: "[Pseudo-EXCEPTION] %20.20s:%3.0d: %s: (%s) == true\n", \ + const char *: "[Pseudo-EXCEPTION] %20.20s:%3.0d: %s: (%s) == true\n", \ + unsigned char *: "[Pseudo-EXCEPTION] %20.20s:%3.0d: %s: (%p) == true\n" \ + ), __FILE__, __LINE__, #test, test \ + ); \ + fflush(stderr); \ + exit(112); \ + return NULL; \ + } \ +} while (0) + +#define mu_return_null_if_null(test) do { \ + if (!(test)) { \ + fprintf(stderr, "[Pseudo-EXCEPTION] %20.20s:%3.0d:%30.30s %s: (%p) == NULL\n", \ + __FILE__, __LINE__, __func__, #test, test \ + ); \ + fflush(stderr); \ + exit(111); \ + return NULL; \ + } \ +} while (0) + +#define mu_fatal(M, ...) do { \ + fprintf(stderr, "[FATAL] %20.20s:%3.0d " M "\n", __FILE__, __LINE__, ##__VA_ARGS__); \ + fflush(stderr); \ + exit(1); \ +} while (0) + + +#define mu_assert(test) do { \ + if (!(test)) { \ + char *mu_message = malloc(MAX_ERROR_MESSAGE_LENGTH); \ + if (mu_message == NULL) { printf("malloc failed"); exit(1); } \ + snprintf(mu_message, MAX_ERROR_MESSAGE_LENGTH, _Generic( \ + (test), \ + json_t *: "%s:%i asserted: %s, reality: %s == %p", \ + void *: "%s:%i asserted: %s, reality: %s == %p", \ + long long: "%s:%i asserted: %s, reality: %s == %lld", \ + unsigned long: "%s:%i asserted: %s, reality: %s == %lu", \ + int: "%s:%i asserted: %s, reality: %s == %i", \ + unsigned char: "%s:%i asserted: %s, reality: %s == %u", \ + const char *: "%s:%i asserted: %s, reality: %s == %s", \ + char *: "%s:%i asserted: %s, reality: %s == %s" \ + ), \ + __FILE__, __LINE__, #test, #test, test); \ + return mu_message; \ + } \ +} while (0) + +#define mu_print(variable) do { \ + fprintf(stderr,_Generic( \ + (0,variable), \ + unsigned long: "[DEBUG] %20.20s:%3.0d:%30.30s %s: %lu\n", \ + long long: "[DEBUG] %20.20s:%3.0d:%30.30s %s: %lld\n", \ + int: "[DEBUG] %20.20s:%3.0d:%30.30s %s: %i\n", \ + unsigned char: "[DEBUG] %20.20s:%3.0d:%30.30s %s: %u\n", \ + const char *: "[DEBUG] %20.20s:%3.0d:%30.30s %s: %s\n", \ + char *: "[DEBUG] %20.20s:%3.0d:%30.30s %s: %s\n", \ + unsigned char *: "[DEBUG] %20.20s:%3.0d:%30.30s %s: %p\n" \ + ), __FILE__, __LINE__, __func__, #variable, variable \ + ); \ + fflush(stderr); \ +} while (0) + +#define mu_print_json(variable) do { \ + char *mu_json = json_dumps(variable, JSON_COMPACT|JSON_ENCODE_ANY); \ + fprintf(stderr, "[DEBUG] %20.20s:%3.0d:%30.30s %s: %s\n", \ + __FILE__, __LINE__, __func__, #variable, mu_json \ + ); \ + free(mu_json); \ + fflush(stderr); \ +} while (0) + + +/* + if (_Generic( \ + (actual), \ + unsigned long: actual != expected, \ + int: actual != expected, \ + unsigned char: actual != expected, \ + char *: strcmp(actual, expected) != 0 \ + ), \ + ) { \ +*/ +#define mu_assert_equal(actual, expected) do { \ + if (actual != expected) { \ + char *mu_message = malloc(MAX_ERROR_MESSAGE_LENGTH); \ + if (mu_message == NULL) { printf("malloc failed"); exit(1); } \ + snprintf(mu_message, MAX_ERROR_MESSAGE_LENGTH, _Generic( \ + (actual), \ + unsigned long: "%s:%i required: %s == %s, reality: %s == %lu", \ + int: "%s:%i required: %s == %s, reality: %s == %i", \ + unsigned char: "%s:%i required: %s == %s, reality: %s == %u", \ + char *: "%s:%i required: %s == %p, reality: %s == %p" \ + ), \ + __FILE__, __LINE__, #actual, #expected, #actual, actual); \ + return mu_message; \ + } \ +} while (0) + +#define mu_assert_not_equal(actual, not_expected) do { \ + if (actual == not_expected) { \ + char *mu_message = malloc(MAX_ERROR_MESSAGE_LENGTH); \ + if (mu_message == NULL) { printf("malloc failed"); exit(1); } \ + snprintf(mu_message, MAX_ERROR_MESSAGE_LENGTH, _Generic( \ + (actual), \ + unsigned long: "%s:%i required: %s != %s, reality: %s == %lu", \ + int: "%s:%i required: %s != %s, reality: %s == %i", \ + unsigned char: "%s:%i required: %s != %s, reality: %s == %u", \ + char *: "%s:%i required: %s != %p, reality: %s == %p" \ + ), \ + __FILE__, __LINE__, #actual, #not_expected, #actual, actual); \ + return mu_message; \ + } \ +} while (0) + +#define mu_assert_equal_str(actual, expected) do { \ + if (strcmp(actual,expected) != 0) { \ + char *mu_message = malloc(MAX_ERROR_MESSAGE_LENGTH); \ + if (mu_message == NULL) { printf("malloc failed"); exit(1); } \ + snprintf(mu_message, MAX_ERROR_MESSAGE_LENGTH, \ + "%s:%i required: %s == %s, reality: %s == %s", \ + __FILE__, __LINE__, #actual, #expected, #actual, actual); \ + return mu_message; \ + } \ +} while (0) + +#define mu_run_test(test) do { \ + char *message = test(); \ + tests_run++; \ + if (message) return message; \ +} while (0) + +extern int tests_run; diff --git a/libprotobuf2jansson/varint.c b/libprotobuf2jansson/varint.c new file mode 100644 index 0000000..84743b2 --- /dev/null +++ b/libprotobuf2jansson/varint.c @@ -0,0 +1,35 @@ +#include +#include +#include "minunit.h" +#include "varint.h" + +int p2j_varint_decode(const uint8_t *const buffer, const size_t buffer_length, uint64_t *varint_out, size_t *bytes_parsed_out) { + uint64_t accumulator = 0; + uint8_t position = 0; + for (const uint8_t *p = buffer; p < buffer + buffer_length; p++) { + uint8_t value = *p & 0x7f; + accumulator += value * (1 << position); + //mu_print(accumulator); + //mu_print(position); + if (!(*p & 0x80)) { // last byte of varint + //mu_print(p); + //mu_print(buffer); + *varint_out = accumulator; + *bytes_parsed_out = p - buffer + 1; // number of uint8's parsed + return P2J_VARINT_PARSED; + } + position += 7; // the seven low bits carry the data + if (position > 56) { + // TODO: this is a horrible alternaitve to throwing an exception + *varint_out = 0; + *bytes_parsed_out = 0; + return P2J_VARINT_MALFORMED; + } + } + // we've run off of the end of the buffer, without fully decoding a varint + // so return that zero uint8s processed + *varint_out = 0; // tidy up + *bytes_parsed_out = 0; + return P2J_VARINT_MORE_BYTES_NEEDED; +} + diff --git a/libprotobuf2jansson/varint.h b/libprotobuf2jansson/varint.h new file mode 100644 index 0000000..01cbb78 --- /dev/null +++ b/libprotobuf2jansson/varint.h @@ -0,0 +1,11 @@ +#ifndef VARINT_H +#define VARINT_H + +#include + +enum p2j_varint_result_enum { P2J_VARINT_PARSED, P2J_VARINT_MORE_BYTES_NEEDED, P2J_VARINT_MALFORMED }; + +int p2j_varint_decode(const uint8_t *const buffer, const size_t buffer_length, uint64_t *varint_out, size_t *bytes_parsed_out); + + +#endif diff --git a/testsuite/.deps/exampleProgram-exampleProgram.Po b/testsuite/.deps/exampleProgram-exampleProgram.Po new file mode 100644 index 0000000..cf91c96 --- /dev/null +++ b/testsuite/.deps/exampleProgram-exampleProgram.Po @@ -0,0 +1,54 @@ +exampleProgram-exampleProgram.o: exampleProgram.c \ + /usr/include/stdc-predef.h ../include/protobuf2jansson.h \ + /usr/include/stdio.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/4.8/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h + +/usr/include/stdc-predef.h: + +../include/protobuf2jansson.h: + +/usr/include/stdio.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: diff --git a/testsuite/.deps/testsuite-testsuite.Po b/testsuite/.deps/testsuite-testsuite.Po new file mode 100644 index 0000000..0fd0b74 --- /dev/null +++ b/testsuite/.deps/testsuite-testsuite.Po @@ -0,0 +1,107 @@ +testsuite-testsuite.o: testsuite.c ../include/protobuf2jansson.h \ + /usr/include/stdio.h /usr/include/features.h \ + /usr/include/stdc-predef.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/bin/../lib/clang/3.4/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/bin/../lib/clang/3.4/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/local/include/jansson.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/local/include/jansson_config.h \ + /usr/bin/../lib/clang/3.4/include/stdint.h \ + /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h \ + /usr/include/stdint.h /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/unistd.h /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h /usr/include/fcntl.h \ + /usr/include/x86_64-linux-gnu/bits/fcntl.h \ + /usr/include/x86_64-linux-gnu/bits/fcntl-linux.h \ + ../libprotobuf2jansson/varint.h \ + ../libprotobuf2jansson/meta_descriptor.json.h \ + ../libprotobuf2jansson/minunit.h /usr/include/string.h + +../include/protobuf2jansson.h: + +/usr/include/stdio.h: + +/usr/include/features.h: + +/usr/include/stdc-predef.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/bin/../lib/clang/3.4/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/bin/../lib/clang/3.4/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/local/include/jansson.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/local/include/jansson_config.h: + +/usr/bin/../lib/clang/3.4/include/stdint.h: + +/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/posix_opt.h: + +/usr/include/x86_64-linux-gnu/bits/confname.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/sys/stat.h: + +/usr/include/x86_64-linux-gnu/bits/stat.h: + +/usr/include/fcntl.h: + +/usr/include/x86_64-linux-gnu/bits/fcntl.h: + +/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h: + +../libprotobuf2jansson/varint.h: + +../libprotobuf2jansson/meta_descriptor.json.h: + +../libprotobuf2jansson/minunit.h: + +/usr/include/string.h: diff --git a/testsuite/.libs/testsuite b/testsuite/.libs/testsuite new file mode 100755 index 0000000000000000000000000000000000000000..424d95e08d6ed78f548a910490680a2d14d096c7 GIT binary patch literal 30292 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 Tqkp`bxK7Qt`oy>E^!ok}*bj@d literal 0 HcmV?d00001 diff --git a/testsuite/Makefile b/testsuite/Makefile new file mode 100644 index 0000000..591e321 --- /dev/null +++ b/testsuite/Makefile @@ -0,0 +1,612 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# testsuite/Makefile. Generated from Makefile.in by configure. + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + + +####################################### +# The list of executables we are building seperated by spaces +# the 'bin_' indicates that these build products will be installed +# in the $(bindir) directory. For example /usr/bin +#bin_PROGRAMS=testsuite + + +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/protobuf2jansson +pkgincludedir = $(includedir)/protobuf2jansson +pkglibdir = $(libdir)/protobuf2jansson +pkglibexecdir = $(libexecdir)/protobuf2jansson +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = x86_64-unknown-linux-gnu +host_triplet = x86_64-unknown-linux-gnu +target_triplet = x86_64-unknown-linux-gnu +noinst_PROGRAMS = testsuite$(EXEEXT) +subdir = testsuite +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +PROGRAMS = $(noinst_PROGRAMS) +am_testsuite_OBJECTS = testsuite-testsuite.$(OBJEXT) +testsuite_OBJECTS = $(am_testsuite_OBJECTS) +testsuite_LDADD = $(LDADD) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +am__v_lt_1 = +testsuite_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(testsuite_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_$(V)) +am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I. +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(testsuite_SOURCES) +DIST_SOURCES = $(testsuite_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = aclocal-1.14 +AMTAR = $${TAR-tar} +AM_DEFAULT_VERBOSITY = 1 +AR = ar +AUTOCONF = autoconf +AUTOHEADER = autoheader +AUTOMAKE = automake-1.14 +AWK = gawk +CC = clang +CCDEPMODE = depmode=gcc3 +CFLAGS = -g -std=c11 -O0 -g +CPP = clang -E +CPPFLAGS = +CYGPATH_W = echo +DEFS = -DPACKAGE_NAME=\"protobuf2jansson\" -DPACKAGE_TARNAME=\"protobuf2jansson\" -DPACKAGE_VERSION=\"1.0\" -DPACKAGE_STRING=\"protobuf2jansson\ 1.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"protobuf2jansson\" -DVERSION=\"1.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" +DEPDIR = .deps +DLLTOOL = false +DSYMUTIL = +DUMPBIN = +ECHO_C = +ECHO_N = -n +ECHO_T = +EGREP = /bin/grep -E +EXEEXT = +FGREP = /bin/grep -F +GREP = /bin/grep +INSTALL = /usr/bin/install -c +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_PROGRAM = ${INSTALL} +INSTALL_SCRIPT = ${INSTALL} +INSTALL_STRIP_PROGRAM = $(install_sh) -c -s +LD = /usr/bin/ld -m elf_x86_64 +LDFLAGS = +LIBOBJS = +LIBS = +LIBTOOL = $(SHELL) $(top_builddir)/libtool +LIPO = +LN_S = ln -s +LTLIBOBJS = +MAKEINFO = makeinfo +MANIFEST_TOOL = : +MKDIR_P = /bin/mkdir -p +NM = /usr/bin/nm -B +NMEDIT = +OBJDUMP = objdump +OBJEXT = o +OTOOL = +OTOOL64 = +PACKAGE = protobuf2jansson +PACKAGE_BUGREPORT = +PACKAGE_NAME = protobuf2jansson +PACKAGE_STRING = protobuf2jansson 1.0 +PACKAGE_TARNAME = protobuf2jansson +PACKAGE_URL = +PACKAGE_VERSION = 1.0 +PATH_SEPARATOR = : +PKG_CONFIG = /usr/bin/pkg-config +PKG_CONFIG_LIBDIR = +PKG_CONFIG_PATH = :/usr/local/lib/:/usr/local/lib/:/usr/local/lib/pkgconfig +RANLIB = ranlib +SED = /bin/sed +SET_MAKE = +SHELL = /bin/bash +STRIP = strip +VERSION = 1.0 +abs_builddir = /home/chris/workspace/protobuf2jansson/testsuite +abs_srcdir = /home/chris/workspace/protobuf2jansson/testsuite +abs_top_builddir = /home/chris/workspace/protobuf2jansson +abs_top_srcdir = /home/chris/workspace/protobuf2jansson +ac_ct_AR = ar +ac_ct_CC = clang +ac_ct_DUMPBIN = +am__include = include +am__leading_dot = . +am__quote = +am__tar = $${TAR-tar} chof - "$$tardir" +am__untar = $${TAR-tar} xf - +bindir = ${exec_prefix}/bin +build = x86_64-unknown-linux-gnu +build_alias = +build_cpu = x86_64 +build_os = linux-gnu +build_vendor = unknown +builddir = . +datadir = ${datarootdir} +datarootdir = ${prefix}/share +docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} +dvidir = ${docdir} +exec_prefix = ${prefix} +host = x86_64-unknown-linux-gnu +host_alias = +host_cpu = x86_64 +host_os = linux-gnu +host_vendor = unknown +htmldir = ${docdir} +includedir = ${prefix}/include +infodir = ${datarootdir}/info +install_sh = ${SHELL} /home/chris/install-sh +jansson_CFLAGS = -I/usr/local/include +jansson_LIBS = -L/usr/local/lib -ljansson +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/libexec +localedir = ${datarootdir}/locale +localstatedir = ${prefix}/var +mandir = ${datarootdir}/man +mkdir_p = $(MKDIR_P) +oldincludedir = /usr/include +pdfdir = ${docdir} +prefix = /usr/local +program_transform_name = s,x,x, +psdir = ${docdir} +sbindir = ${exec_prefix}/sbin +sharedstatedir = ${prefix}/com +srcdir = . +sysconfdir = ${prefix}/etc +target = x86_64-unknown-linux-gnu +target_alias = +target_cpu = x86_64 +target_os = linux-gnu +target_vendor = unknown +top_build_prefix = ../ +top_builddir = .. +top_srcdir = .. + +####################################### +# Build information for each executable. The variable name is derived +# by use the name of the executable with each non alpha-numeric character is +# replaced by '_'. So a.out becomes a_out and the appropriate suffex added. +# '_SOURCES' for example. + +# Sources for the a.out +testsuite_SOURCES = testsuite.c + +# Linker options for a.out +testsuite_LDFLAGS = $(jansson_LIBS) $(top_srcdir)/libprotobuf2jansson/libprotobuf2jansson.la + +# Compiler options for a.out +testsuite_CPPFLAGS = $(jansson_CFLAGS) -I$(top_srcdir)/include +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu testsuite/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu testsuite/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +testsuite$(EXEEXT): $(testsuite_OBJECTS) $(testsuite_DEPENDENCIES) $(EXTRA_testsuite_DEPENDENCIES) + @rm -f testsuite$(EXEEXT) + $(AM_V_CCLD)$(testsuite_LINK) $(testsuite_OBJECTS) $(testsuite_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +include ./$(DEPDIR)/testsuite-testsuite.Po + +.c.o: + $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< + $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +# $(AM_V_CC)source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(COMPILE) -c -o $@ $< + +.c.obj: + $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` + $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +# $(AM_V_CC)source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: + $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< + $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +# $(AM_V_CC)source='$<' object='$@' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LTCOMPILE) -c -o $@ $< + +testsuite-testsuite.o: testsuite.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT testsuite-testsuite.o -MD -MP -MF $(DEPDIR)/testsuite-testsuite.Tpo -c -o testsuite-testsuite.o `test -f 'testsuite.c' || echo '$(srcdir)/'`testsuite.c + $(AM_V_at)$(am__mv) $(DEPDIR)/testsuite-testsuite.Tpo $(DEPDIR)/testsuite-testsuite.Po +# $(AM_V_CC)source='testsuite.c' object='testsuite-testsuite.o' libtool=no \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite-testsuite.o `test -f 'testsuite.c' || echo '$(srcdir)/'`testsuite.c + +testsuite-testsuite.obj: testsuite.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT testsuite-testsuite.obj -MD -MP -MF $(DEPDIR)/testsuite-testsuite.Tpo -c -o testsuite-testsuite.obj `if test -f 'testsuite.c'; then $(CYGPATH_W) 'testsuite.c'; else $(CYGPATH_W) '$(srcdir)/testsuite.c'; fi` + $(AM_V_at)$(am__mv) $(DEPDIR)/testsuite-testsuite.Tpo $(DEPDIR)/testsuite-testsuite.Po +# $(AM_V_CC)source='testsuite.c' object='testsuite-testsuite.obj' libtool=no \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite-testsuite.obj `if test -f 'testsuite.c'; then $(CYGPATH_W) 'testsuite.c'; else $(CYGPATH_W) '$(srcdir)/testsuite.c'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am new file mode 100644 index 0000000..2540b22 --- /dev/null +++ b/testsuite/Makefile.am @@ -0,0 +1,25 @@ +####################################### +# The list of executables we are building seperated by spaces +# the 'bin_' indicates that these build products will be installed +# in the $(bindir) directory. For example /usr/bin +#bin_PROGRAMS=testsuite + +# Because a.out is only a sample program we don't want it to be installed. +# The 'noinst_' prefix indicates that the following targets are not to be +# installed. +noinst_PROGRAMS=testsuite + +####################################### +# Build information for each executable. The variable name is derived +# by use the name of the executable with each non alpha-numeric character is +# replaced by '_'. So a.out becomes a_out and the appropriate suffex added. +# '_SOURCES' for example. + +# Sources for the a.out +testsuite_SOURCES= testsuite.c + +# Linker options for a.out +testsuite_LDFLAGS = $(jansson_LIBS) $(top_srcdir)/libprotobuf2jansson/libprotobuf2jansson.la + +# Compiler options for a.out +testsuite_CPPFLAGS = $(jansson_CFLAGS) -I$(top_srcdir)/include diff --git a/testsuite/meta_descriptor.desc b/testsuite/meta_descriptor.desc new file mode 100644 index 0000000000000000000000000000000000000000..fc892035e3b11e06c10b33a73fb5a8c0211ca89a GIT binary patch literal 4445 zcmc&&O>^5s7{(t;?AMN?Y|_>Zg|?KZAF7ZAG%2PMB$joZ{X0`|EjE@Mi_C`kt}eX93ka z%r`vK4IHoPdQRYw*`DL{EGB;)4!V_XnAsNJfLF;(Ln zdt7qm_YBNWI44EO+O*GQrIzw!7N%Wl9Mc{vr^NvQ=rEVr9cCM+Nchz$=AZf!Sw_9!D<<;^HwB`^@)IupXScteh35-$8N1*!7z%!U`I31>&cGoHA1>f}qUrP{fAYC2FDt~2Qc3gWrlaD~@ zavL#^yhtwS!3u^u^j*g7f}9^f!DfEIIxN#y;rgioK7xE)#b!<;YPhtin(8BqLy zdV%Obg%luz-6pzEsr;nC!o*68=eh(_*a3&k!v;-Z7p{V0(L-iom!+0Uwf7PcnIyB? z;4EYXvZ6s1!FumvtZi&*G6#9isf%$kh3t8vLQW*9!$$Mu63ld1mkz8zKcUuuVS{nP zc__#nm^f*ki!M+|^(?xwo!**k%`mo=U(=8kmdrw-{d7;$H=76R4NXmv5`Z|^YBbl{ zYC8N~-)%pBq-JpJNrnS?kc|>Ntf>k*Qj`MfpJ|)OG8I2TnrSivc|o(@Y&O(fD6`ex zukUWF`B3Kee)C{Yg;2td)@rS7Yic2+Sby5qT52&A!OcPyGocD?_h3gYVZ>*I#?}@$ z3n^yDj?hvyl+uz?=3)m(K`I-d$mA0!HP+U(hThz3*PFX*4UAoQwy%A1P~X=!F@BM= zJ#DRxXPL?^SeV!&u~MykmxB38<2pu#MX1Q?ki+Y4BJW(pr@Vf~J2EnYc`r;F!JKzg zG8UB26%{w>tj9PoDu}`1te1*zo^Rwx+Yc$Yd=BWul|6mi zxmBf0EuWG5@Rp$IF`IcbU^@G9fEPNoJNgmzkID;C>f3NxQ2T*r+CAMkV#cvP2)Zlf zH=|@*P;?N?`{oPO>3Cvpm1@ayjW}54j&g<_#PU_8wWn#D*iX=NLYE68rwl_E=HjL` z+-3Z-8r6RbE}c0QrJ9RUVR+orq$CohxhnQNj~N)6PWejoY6BJqwrOMFU5{~q=Pu)F z^tarNl5l+xrIvZEtU@vBILU)_9S01~&5h=!rnl;!YdBkQ)HdpEP2WG*ZP#}+HFGbY z`)6AH7XQ+fKT=SNBPzKAS4Nwq&jS6K>4{wQsYKMU0IG1^c65YVyFJG17MMR=r{g#HJfMgjgp98odP?%SLsrF8yhoaQg4Gwy%Qxa$pM5cJ} zU>1ct2(4L*zBtA0DB{6OoWoXQ&t2x3eP##L()-lakJ+iHZ4T5~zTn4u>s7>~vJ8rF z1bboViuwl0L3X3Lzll|XWg#8Z_v+dP7D_aL->0Au8S8wVpqAx4)2U@re;A0D`1~py zh}!cts3EM3avE396Z_ig=_@D=VP>-Oo3B&(3z(6J@;~VQF%9z*rVsge_{f#(#DhdT zP2j2S;;VQM_i|DO)x_s-V0KN!9=VrDuv-M;I=&g0C;as`+GsiMWeMKdtVhT0coSwg z#&sNgL9?MWzAUHs=@4$tHsd0HQPW<} z)_19ms`1l+IKfa_jCKU1I(4;D7v>G8KW@{yI=1}yPg4H^ D!M{F6 literal 0 HcmV?d00001 diff --git a/testsuite/testsuite b/testsuite/testsuite new file mode 100755 index 0000000..dc47ce6 --- /dev/null +++ b/testsuite/testsuite @@ -0,0 +1,228 @@ +#! /bin/bash + +# testsuite - temporary wrapper script for .libs/testsuite +# Generated by libtool (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1 +# +# The testsuite program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s/\([`"$\\]\)/\\\1/g' + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command="(cd /home/chris/workspace/protobuf2jansson/testsuite; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=./node_modules/.bin:/home/chris/sync/clojure/bin:/btrfs/emsdk_portable/clang/fastcomp/build_master_64/bin:/btrfs/emsdk_portable/emscripten/master:/home/chris/Android/Sdk/platform-tools:/opt/android-studio/bin:/opt/logic_1.1.31:/home/chris/ecryptfs/clojure/bin:/opt/Adobe/Reader9/bin:/home/chris/.cabal/bin:/home/chris/bin/:/opt/WebStorm-139.164/bin/:/home/chris/llvm2/clang+llvm-3.2-x86_64-linux-ubuntu-12.04/bin:/opt/android-sdks/platform-tools/:/usr/lib/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/stlink; export PATH; clang -g -std=c11 -O0 -g -o \$progdir/\$file testsuite-testsuite.o -L/usr/local/lib /usr/local/lib/libjansson.so ../libprotobuf2jansson/.libs/libprotobuf2jansson.so -Wl,-rpath -Wl,/home/chris/workspace/protobuf2jansson/libprotobuf2jansson/.libs)" + +# This environment variable determines our operation mode. +if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then + # install mode needs the following variables: + generated_by_libtool_version='2.4.2' + notinst_deplibs=' ../libprotobuf2jansson/libprotobuf2jansson.la' +else + # When we are sourced in execute mode, $file and $ECHO are already set. + if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then + file="$0" + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + ECHO="printf %s\\n" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ which is used only on +# windows platforms, and (c) all begin with the string --lt- +# (application programs are unlikely to have options which match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's ../libtool value, followed by no. +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=$0 + shift + for lt_opt + do + case "$lt_opt" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=`$ECHO "X$lt_script_arg0" | /bin/sed -e 's/^X//' -e 's%/[^/]*$%%'` + test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=. + lt_dump_F=`$ECHO "X$lt_script_arg0" | /bin/sed -e 's/^X//' -e 's%^.*/%%'` + cat "$lt_dump_D/$lt_dump_F" + exit 0 + ;; + --lt-*) + $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n "$lt_option_debug"; then + echo "testsuite:testsuite:${LINENO}: libtool wrapper (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + $ECHO "testsuite:testsuite:${LINENO}: newargv[$lt_dump_args_N]: $lt_arg" + lt_dump_args_N=`expr $lt_dump_args_N + 1` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ + + if test -n "$lt_option_debug"; then + $ECHO "testsuite:testsuite:${LINENO}: newargv[0]: $progdir/$program" 1>&2 + func_lt_dump_args ${1+"$@"} 1>&2 + fi + exec "$progdir/$program" ${1+"$@"} + + $ECHO "$0: cannot exec $program $*" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from $@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case " $* " in + *\ --lt-*) + for lt_wr_arg + do + case $lt_wr_arg in + --lt-*) ;; + *) set x "$@" "$lt_wr_arg"; shift;; + esac + shift + done ;; + esac + func_exec_program_core ${1+"$@"} +} + + # Parse options + func_parse_lt_options "$0" ${1+"$@"} + + # Find the directory that this script lives in. + thisdir=`$ECHO "$file" | /bin/sed 's%/[^/]*$%%'` + test "x$thisdir" = "x$file" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'` + while test -n "$file"; do + destdir=`$ECHO "$file" | /bin/sed 's%/[^/]*$%%'` + + # If there was a directory component, then change thisdir. + if test "x$destdir" != "x$file"; then + case "$destdir" in + [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;; + *) thisdir="$thisdir/$destdir" ;; + esac + fi + + file=`$ECHO "$file" | /bin/sed 's%^.*/%%'` + file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no + if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then + # special case for '.' + if test "$thisdir" = "."; then + thisdir=`pwd` + fi + # remove .libs from thisdir + case "$thisdir" in + *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /bin/sed 's%[\\/][^\\/]*$%%'` ;; + .libs ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=`cd "$thisdir" && pwd` + test -n "$absdir" && thisdir="$absdir" + + program=lt-'testsuite' + progdir="$thisdir/.libs" + + if test ! -f "$progdir/$program" || + { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \ + test "X$file" != "X$progdir/$program"; }; then + + file="$$-$program" + + if test ! -d "$progdir"; then + mkdir "$progdir" + else + rm -f "$progdir/$file" + fi + + # relink executable if necessary + if test -n "$relink_command"; then + if relink_command_output=`eval $relink_command 2>&1`; then : + else + printf %s\n "$relink_command_output" >&2 + rm -f "$progdir/$file" + exit 1 + fi + fi + + mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null || + { rm -f "$progdir/$program"; + mv -f "$progdir/$file" "$progdir/$program"; } + rm -f "$progdir/$file" + fi + + if test -f "$progdir/$program"; then + if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then + # Run the actual program with our arguments. + func_exec_program ${1+"$@"} + fi + else + # The program doesn't exist. + $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2 + $ECHO "This script is just a wrapper for $program." 1>&2 + $ECHO "See the libtool documentation for more information." 1>&2 + exit 1 + fi +fi diff --git a/testsuite/testsuite-testsuite.o b/testsuite/testsuite-testsuite.o new file mode 100644 index 0000000000000000000000000000000000000000..3e7662a7ba9b8b1a1db2415ab5c0dfe0e78c69b2 GIT binary patch literal 39688 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 +#include +#include +#include +#include +#include + +#include "../libprotobuf2jansson/varint.h" +#include "../libprotobuf2jansson/meta_descriptor.json.h" + +#include "../libprotobuf2jansson/minunit.h" +int tests_run = 0; + +static char *dummy_test() { + int result = 42; + mu_assert_equal(result, 42); + return 0; +} + +static char *test_varint_decode() { + uint8_t zero[] = {0x00}; + uint8_t one[] = {0x01}; + uint8_t one_two_three[] = {0x01, 0x02, 0x03}; + uint8_t one_hundred_and_twenty_nine[] = {0x81, 0x01}; + uint8_t incomplete[] = {0x81, 0x81}; + uint8_t unparsable_junk[] = {0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89}; + + int result; + uint64_t varint; // reused a for each subtest + size_t bytes_parsed; + + result = p2j_varint_decode(zero, sizeof(zero), &varint, &bytes_parsed); + mu_assert_equal(result, P2J_VARINT_PARSED); + mu_assert_equal(bytes_parsed, 1); + mu_assert_equal(varint, 0); + + result = p2j_varint_decode(one, sizeof(one), &varint, &bytes_parsed); + mu_assert_equal(result, P2J_VARINT_PARSED); + mu_assert_equal(bytes_parsed, 1); + mu_assert_equal(varint, 1); + + result = p2j_varint_decode(one_two_three, sizeof(one_two_three), &varint, &bytes_parsed); + mu_assert_equal(result, P2J_VARINT_PARSED); + mu_assert_equal(bytes_parsed, 1); + mu_assert_equal(varint, 1); + + result = p2j_varint_decode(one_hundred_and_twenty_nine, sizeof(one_hundred_and_twenty_nine), &varint, &bytes_parsed); + mu_assert_equal(result, P2J_VARINT_PARSED); + mu_assert_equal(bytes_parsed, 2); + mu_assert_equal(varint, 129); + + result = p2j_varint_decode(incomplete, sizeof(incomplete), &varint, &bytes_parsed); + mu_assert_equal(result, P2J_VARINT_MORE_BYTES_NEEDED); + + result = p2j_varint_decode(unparsable_junk, sizeof(unparsable_junk), &varint, &bytes_parsed); + mu_assert_equal(result, P2J_VARINT_MALFORMED); + + return 0; +} + +static char *test_p2j_get_message_by_name() { + json_error_t error; + + json_t *meta_desc = json_loads((char *)p2j_meta_descriptor_json, 0, &error); + + mu_assert(meta_desc); + + json_t *message = p2j_get_message_by_name(meta_desc, ".google.protobuf.FileDescriptorSet"); + mu_assert(message); + + mu_assert(json_is_object(message)); + //mu_print_json(message); + const char *name = json_string_value(json_object_get(message, "name")); + mu_assert_equal_str(name, "FileDescriptorSet"); + //free(name); + + json_decref(meta_desc); + return 0; +} + +static char *test_p2j_get_message_by_name2() { + json_error_t error; + json_t *meta_desc = json_loads((char *)p2j_meta_descriptor_json, 0, &error); + mu_assert(meta_desc); + + json_t *message = p2j_get_message_by_name(meta_desc, ".google.protobuf.DescriptorProto.ExtensionRange"); + mu_assert(message); + + mu_assert(json_is_object(message)); + //mu_print_json(message); + const char *name = json_string_value(json_object_get(message, "name")); + mu_assert_equal_str(name, "ExtensionRange"); + //free(name); + + json_decref(meta_desc); + return 0; +} + +static char *test_p2j_package_and_name_from_type_name() { + char destroyable[] = ".foo.bar.Nested.Name"; + char *package; + char *name_list[] = {NULL, NULL, NULL, NULL}; + char *result = p2j_package_and_name_from_type_name(destroyable, &package, name_list, sizeof(name_list)/sizeof(name_list[0])); + mu_assert(result); + mu_assert_equal_str(package,"foo.bar"); + mu_assert_equal_str(name_list[0],"Nested"); + mu_assert_equal_str(name_list[1],"Name"); + mu_assert_equal(name_list[2],NULL); + + return 0; +} + +// Test with meta_descriptor.desc as the data because we cannot use any other descriptors +// until we can convert them to JSON, which requires this to work... +static char *test_p2j_protobuf2json_object() { + // read the .desc file into memory + int fd = open("/home/chris/workspace/protobuf2jansson/testsuite/meta_descriptor.desc", O_RDONLY); + mu_assert_not_equal(fd, -1); + struct stat stat; + fstat(fd, &stat); + char protobuf_data[stat.st_size]; // it's only 4K, so we're OK on the stack + size_t num_read = read(fd, protobuf_data, sizeof(protobuf_data)); + mu_assert_equal(num_read, (size_t) stat.st_size); + //mu_print(num_read); + + // get a descriptor, in Jansson form, to be used to decode desc + json_error_t error; + json_t *desc = json_loads((char *)p2j_meta_descriptor_json, 0, &error); + mu_assert(desc); + + json_t *result = p2j_protobuf2json_object(desc, ".google.protobuf.FileDescriptorSet", protobuf_data, sizeof(protobuf_data)); + mu_assert(result); + mu_print_json(result); + json_decref(result); + + json_decref(desc); + return 0; +} + +static char *test_json_stringn() { + char *buffer = "src/meta_descriptor.proto123"; + json_t *value = json_stringn(buffer, 25); + printf("value (as pointer): |%p|\n", value); + char *json_string = json_dumps(value, JSON_COMPACT|JSON_ENCODE_ANY); + printf("json_string: |%s| (as_pointer): |%p|\n", json_string, json_string); + free(json_string); + json_decref(value); + return 0; +} + +static char *all_tests() { + mu_run_test(dummy_test); + mu_run_test(test_varint_decode); + mu_run_test(test_p2j_package_and_name_from_type_name); + mu_run_test(test_p2j_get_message_by_name); + mu_run_test(test_p2j_get_message_by_name2); + mu_run_test(test_p2j_protobuf2json_object); + //mu_run_test(test_json_stringn); + return 0; +} + +int main() { + char *result = all_tests(); + if (result != 0) { + printf("TEST FAILED: %s\n", result); + free(result); + } else { + printf("ALL TESTS PASSED\n"); + } + printf("Tests run: %d\n", tests_run); + + return result != 0; +}