diff --git a/#Makefile# b/#Makefile# new file mode 100644 index 0000000..69ab878 --- /dev/null +++ b/#Makefile# @@ -0,0 +1,150 @@ +# Copyright 2023 ETH Zurich and University of Bologna. +# Licensed under the Apache License, Version 2.0, see LICENSE for details. +# SPDX-License-Identifier: Apache-2.0 +# +# Andrea Belano +# + +mkfile_path := $(dir $(abspath $(firstword $(MAKEFILE_LIST)))) +SW ?= $(mkfile_path)sw +BUILD_DIR ?= $(mkfile_path)work +QUESTA ?= #questa-2020.1 +PYTHON ?= python +ISA ?= riscv +ARCH ?= rv +XLEN ?= 32 +XTEN ?= imc + +BENDER ?= $(mkfile_path)/bender +TEST ?= tb_datamover.c + +TEST_SRCS := $(SW)/$(TEST) + +compile_script ?= $(mkfile_path)scripts/compile.tcl +compile_script_synth ?= $(mkfile_path)scripts/synth_compile.tcl +compile_flag ?= -suppress 2583 -suppress 13314 -suppress 8386 + +sim_flags ?= -suppress 3009 + +bender_defs += -D COREV_ASSERT_OFF + +sim_targs += -t rtl +sim_targs += -t test +bender_targs += -t cv32e40p_exclude_tracer +sim_targs += -t test + +INI_PATH = $(mkfile_path)/modelsim.ini +WORK_PATH = $(BUILD_DIR) + +tb := tb_datamover_top + +gui ?= 0 + +PROB_STALL ?= 0.0 +OUTPUT_SIZE ?= 2 + +# Include directories +INC += -I$(SW) +INC += -I$(SW)/inc +INC += -I$(SW)/utils + +BOOTSCRIPT := $(SW)/kernel/crt0.S +LINKSCRIPT := $(SW)/kernel/link.ld + +CC=$(ISA)$(XLEN)-unknown-elf-gcc +LD=$(CC) +OBJDUMP=$(ISA)$(XLEN)-unknown-elf-objdump +CC_OPTS=-march=$(ARCH)$(XLEN)$(XTEN) -mabi=ilp32 -D__$(ISA)__ -O2 -g -Wextra -Wall -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wundef -fdata-sections -ffunction-sections -MMD -MP +LD_OPTS=-march=$(ARCH)$(XLEN)$(XTEN) -mabi=ilp32 -D__$(ISA)__ -MMD -MP -nostartfiles -nostdlib -Wl,--gc-sections + +# Setup build object dirs +CRT=$(BUILD_DIR)/crt0.o +OBJ=$(BUILD_DIR)/verif.o +BIN=$(BUILD_DIR)/verif +DUMP=$(BUILD_DIR)/verif.dump + +STIM_INSTR=$(mkfile_path)/stim_instr.txt +STIM_DATA=$(mkfile_path)/stim_data.txt + +# Build implicit rules +$(STIM_INSTR) $(STIM_DATA): $(BIN) + objcopy --srec-len 1 --output-target=srec $(BIN) $(BIN).s19 + scripts/parse_s19.pl $(BIN).s19 > $(BIN).txt + python scripts/s19tomem.py $(BIN).txt $(STIM_INSTR) $(STIM_DATA) + +$(BIN): $(CRT) $(OBJ) + $(LD) $(LD_OPTS) -o $(BIN) $(CRT) $(OBJ) -T$(LINKSCRIPT) + +$(CRT): $(BUILD_DIR) + $(CC) $(CC_OPTS) -c $(BOOTSCRIPT) -o $(CRT) + +$(OBJ): $(TEST_SRCS) + $(CC) $(CC_OPTS) -c $(TEST_SRCS) $(FLAGS) $(INC) -o $(OBJ) + +$(BUILD_DIR): + mkdir -p $(BUILD_DIR) + +# Generate instructions and data stimuli +sw-build: $(STIM_INSTR) $(STIM_DATA) dis + +sw-clean: + rm -f $(BUILD_DIR)/*.o + +sw-all: sw-clean sw-build + +dis: + $(OBJDUMP) -d $(BIN) > $(DUMP) + +# Run the simulation +run: +ifeq ($(gui), 0) + $(QUESTA) vsim -c vopt_tb -do "run -a" \ + -gPROB_STALL=$(PROB_STALL) \ + -gOUTPUT_SIZE=$(OUTPUT_SIZE) \ + $(sim_flags) +else + $(QUESTA) vsim vopt_tb \ + -do "add log -r sim:/$(tb)/*" \ + -gPROB_STALL=$(PROB_STALL) \ + -gOUTPUT_SIZE=$(OUTPUT_SIZE) \ + $(sim_flags) +endif + +bender: + curl --proto '=https' \ + --tlsv1.2 https://pulp-platform.github.io/bender/init -sSf | sh -s + +update-ips: + $(BENDER) update + $(BENDER) script vsim \ + --vlog-arg="$(compile_flag)" \ + --vcom-arg="-pedanticerrors" \ + $(bender_targs) $(bender_defs) \ + $(sim_targs) $(sim_deps) \ + > ${compile_script} + +synth-ips: + $(BENDER) update + $(BENDER) script synopsys \ + $(common_targs) $(common_defs) \ + $(synth_targs) $(synth_defs) \ + > ${compile_script_synth} + +hw-opt: + $(QUESTA) vopt +acc=npr -o vopt_tb $(tb) -floatparameters+$(tb) -work $(BUILD_DIR) + +hw-compile: + $(QUESTA) vsim -c +incdir+$(UVM_HOME) -do 'quit -code [source $(compile_script)]' + +hw-lib: + @touch modelsim.ini + @mkdir -p $(BUILD_DIR) + @$(QUESTA) vlib $(BUILD_DIR) + @$(QUESTA) vmap work $(BUILD_DIR) + @chmod +w modelsim.ini + +hw-clean: + rm -rf transcript + rm -rf modelsim.ini + +hw-all: hw-clean hw-lib hw-compile hw-opt diff --git a/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae b/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae new file mode 160000 index 0000000..1284def --- /dev/null +++ b/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae @@ -0,0 +1 @@ +Subproject commit 1284def6c0b7f7e9355eb093d00883ad9dead1b7 diff --git a/.bender/git/checkouts/common_cells-6a333249e301ab43 b/.bender/git/checkouts/common_cells-6a333249e301ab43 new file mode 160000 index 0000000..c27bce3 --- /dev/null +++ b/.bender/git/checkouts/common_cells-6a333249e301ab43 @@ -0,0 +1 @@ +Subproject commit c27bce39ebb2e6bae52f60960814a2afca7bd4cb diff --git a/.bender/git/checkouts/common_verification-d33f9e1d33e4db52 b/.bender/git/checkouts/common_verification-d33f9e1d33e4db52 new file mode 160000 index 0000000..fa2630f --- /dev/null +++ b/.bender/git/checkouts/common_verification-d33f9e1d33e4db52 @@ -0,0 +1 @@ +Subproject commit fa2630f61666f61d9d78451c4d8b4d1ea403944e diff --git a/.bender/git/checkouts/hci-f076afff0f6dbd15 b/.bender/git/checkouts/hci-f076afff0f6dbd15 new file mode 160000 index 0000000..066c7ce --- /dev/null +++ b/.bender/git/checkouts/hci-f076afff0f6dbd15 @@ -0,0 +1 @@ +Subproject commit 066c7ce7d24b61587e245decb592054669d7a2d1 diff --git a/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c b/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c new file mode 160000 index 0000000..2926867 --- /dev/null +++ b/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c @@ -0,0 +1 @@ +Subproject commit 2926867cafb3fb518a1ae849675f281b79ecab8a diff --git a/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0 b/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0 new file mode 160000 index 0000000..65c99a4 --- /dev/null +++ b/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0 @@ -0,0 +1 @@ +Subproject commit 65c99a4a2f37a79acee800ab0151f67dfb1edef1 diff --git a/.bender/git/checkouts/ibex-0d71cebc1d9540af b/.bender/git/checkouts/ibex-0d71cebc1d9540af new file mode 160000 index 0000000..b18f7ef --- /dev/null +++ b/.bender/git/checkouts/ibex-0d71cebc1d9540af @@ -0,0 +1 @@ +Subproject commit b18f7ef178ed07f5085051f96042c670a919fd5c diff --git a/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b b/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b new file mode 160000 index 0000000..fa55e72 --- /dev/null +++ b/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b @@ -0,0 +1 @@ +Subproject commit fa55e72859dcfb117a2788a77352193bef94ff2b diff --git a/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9 b/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9 new file mode 160000 index 0000000..7968dd6 --- /dev/null +++ b/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9 @@ -0,0 +1 @@ +Subproject commit 7968dd6e6180df2c644636bc6d2908a49f2190cf diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/FETCH_HEAD b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/FETCH_HEAD new file mode 100644 index 0000000..e90ec90 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/FETCH_HEAD @@ -0,0 +1,19 @@ +89e1019d64a86425211be6200770576cbdf3e8b3 not-for-merge branch 'assertion-fix' of https://github.com/pulp-platform/cluster_interconnect +aaa8ef61969d0416c178038d8ae7ea91a0d767df not-for-merge branch 'atomics' of https://github.com/pulp-platform/cluster_interconnect +d01798091dab8ab5fdcd9b5dc6ee61b574a41cae not-for-merge branch 'atomics-v2' of https://github.com/pulp-platform/cluster_interconnect +49581f12e61941ca93e063ceb89514a2d932854a not-for-merge branch 'atomics_merge' of https://github.com/pulp-platform/cluster_interconnect +1f2bf749a8438528ee827ea81998862edcfe9d6e not-for-merge branch 'control-pulp' of https://github.com/pulp-platform/cluster_interconnect +4ff19495103c99d9dbc0c22497da1a117d01a7da not-for-merge branch 'jg_support' of https://github.com/pulp-platform/cluster_interconnect +2967d8d17be0a6139229ca8d3d4956e182aec3de not-for-merge branch 'master' of https://github.com/pulp-platform/cluster_interconnect +8c6c2273d60077002834d2cb5d8e44ee0de3e32c not-for-merge branch 'resp_wen' of https://github.com/pulp-platform/cluster_interconnect +fac1a54c31e0b61c48b9436dea09943db5b081be not-for-merge branch 'vega' of https://github.com/pulp-platform/cluster_interconnect +cac00c5810494693ff9cdf69a630191751956bcf not-for-merge tag 'pulp-v1.0' of https://github.com/pulp-platform/cluster_interconnect +fac1a54c31e0b61c48b9436dea09943db5b081be not-for-merge tag 'v1.0.1' of https://github.com/pulp-platform/cluster_interconnect +d088ef824b5314f74d9b85f138dabb4f2746d0a2 not-for-merge tag 'v1.0.2' of https://github.com/pulp-platform/cluster_interconnect +f0dc98b36884b20efc7e0b3476c96be48d4ea6d2 not-for-merge tag 'v1.0.3' of https://github.com/pulp-platform/cluster_interconnect +eeb8d0e97ff426865ce5baa2c4a9826ff2a5a998 not-for-merge tag 'v1.1' of https://github.com/pulp-platform/cluster_interconnect +eeb8d0e97ff426865ce5baa2c4a9826ff2a5a998 not-for-merge tag 'v1.1.0' of https://github.com/pulp-platform/cluster_interconnect +02a5eaef88170037b0b678cb169ab027540865a0 not-for-merge tag 'v1.1.1' of https://github.com/pulp-platform/cluster_interconnect +2dc55ed7f6dc03c405c256dd9107ae0159328708 not-for-merge tag 'v1.1.2' of https://github.com/pulp-platform/cluster_interconnect +15067138873959641e013b8fc55719e18b52a9af not-for-merge tag 'v1.2.0' of https://github.com/pulp-platform/cluster_interconnect +7d0a4f8acae71a583a6713cab5554e60b9bb8d27 not-for-merge tag 'v1.2.1' of https://github.com/pulp-platform/cluster_interconnect diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/HEAD b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/HEAD new file mode 100644 index 0000000..cb089cd --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/config b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/config new file mode 100644 index 0000000..0393ca5 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/config @@ -0,0 +1,7 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true +[remote "origin"] + url = https://github.com/pulp-platform/cluster_interconnect.git + fetch = +refs/heads/*:refs/remotes/origin/* diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/description b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/applypatch-msg.sample b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/applypatch-msg.sample new file mode 100755 index 0000000..a5d7b84 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/commit-msg.sample b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/commit-msg.sample new file mode 100755 index 0000000..b58d118 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/fsmonitor-watchman.sample b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/fsmonitor-watchman.sample new file mode 100755 index 0000000..14ed0aa --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/fsmonitor-watchman.sample @@ -0,0 +1,173 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use IPC::Open2; + +# An example hook script to integrate Watchman +# (https://facebook.github.io/watchman/) with git to speed up detecting +# new and modified files. +# +# The hook is passed a version (currently 2) and last update token +# formatted as a string and outputs to stdout a new update token and +# all files that have been modified since the update token. Paths must +# be relative to the root of the working tree and separated by a single NUL. +# +# To enable this hook, rename this file to "query-watchman" and set +# 'git config core.fsmonitor .git/hooks/query-watchman' +# +my ($version, $last_update_token) = @ARGV; + +# Uncomment for debugging +# print STDERR "$0 $version $last_update_token\n"; + +# Check the hook interface version +if ($version ne 2) { + die "Unsupported query-fsmonitor hook version '$version'.\n" . + "Falling back to scanning...\n"; +} + +my $git_work_tree = get_working_dir(); + +my $retry = 1; + +my $json_pkg; +eval { + require JSON::XS; + $json_pkg = "JSON::XS"; + 1; +} or do { + require JSON::PP; + $json_pkg = "JSON::PP"; +}; + +launch_watchman(); + +sub launch_watchman { + my $o = watchman_query(); + if (is_work_tree_watched($o)) { + output_result($o->{clock}, @{$o->{files}}); + } +} + +sub output_result { + my ($clockid, @files) = @_; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # binmode $fh, ":utf8"; + # print $fh "$clockid\n@files\n"; + # close $fh; + + binmode STDOUT, ":utf8"; + print $clockid; + print "\0"; + local $, = "\0"; + print @files; +} + +sub watchman_clock { + my $response = qx/watchman clock "$git_work_tree"/; + die "Failed to get clock id on '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + + return $json_pkg->new->utf8->decode($response); +} + +sub watchman_query { + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') + or die "open2() failed: $!\n" . + "Falling back to scanning...\n"; + + # In the query expression below we're asking for names of files that + # changed since $last_update_token but not from the .git folder. + # + # To accomplish this, we're using the "since" generator to use the + # recency index to select candidate nodes and "fields" to limit the + # output to file names only. Then we're using the "expression" term to + # further constrain the results. + if (substr($last_update_token, 0, 1) eq "c") { + $last_update_token = "\"$last_update_token\""; + } + my $query = <<" END"; + ["query", "$git_work_tree", { + "since": $last_update_token, + "fields": ["name"], + "expression": ["not", ["dirname", ".git"]] + }] + END + + # Uncomment for debugging the watchman query + # open (my $fh, ">", ".git/watchman-query.json"); + # print $fh $query; + # close $fh; + + print CHLD_IN $query; + close CHLD_IN; + my $response = do {local $/; }; + + # Uncomment for debugging the watch response + # open ($fh, ">", ".git/watchman-response.json"); + # print $fh $response; + # close $fh; + + die "Watchman: command returned no output.\n" . + "Falling back to scanning...\n" if $response eq ""; + die "Watchman: command returned invalid output: $response\n" . + "Falling back to scanning...\n" unless $response =~ /^\{/; + + return $json_pkg->new->utf8->decode($response); +} + +sub is_work_tree_watched { + my ($output) = @_; + my $error = $output->{error}; + if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { + $retry--; + my $response = qx/watchman watch "$git_work_tree"/; + die "Failed to make watchman watch '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + $output = $json_pkg->new->utf8->decode($response); + $error = $output->{error}; + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # close $fh; + + # Watchman will always return all files on the first query so + # return the fast "everything is dirty" flag to git and do the + # Watchman query just to get it over with now so we won't pay + # the cost in git to look up each individual file. + my $o = watchman_clock(); + $error = $output->{error}; + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + output_result($o->{clock}, ("/")); + $last_update_token = $o->{clock}; + + eval { launch_watchman() }; + return 0; + } + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + return 1; +} + +sub get_working_dir { + my $working_dir; + if ($^O =~ 'msys' || $^O =~ 'cygwin') { + $working_dir = Win32::GetCwd(); + $working_dir =~ tr/\\/\//; + } else { + require Cwd; + $working_dir = Cwd::cwd(); + } + + return $working_dir; +} diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/post-update.sample b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/post-update.sample new file mode 100755 index 0000000..ec17ec1 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/pre-applypatch.sample b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/pre-applypatch.sample new file mode 100755 index 0000000..4142082 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/pre-commit.sample b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/pre-commit.sample new file mode 100755 index 0000000..e144712 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --type=bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/pre-merge-commit.sample b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/pre-merge-commit.sample new file mode 100755 index 0000000..399eab1 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/pre-push.sample b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/pre-push.sample new file mode 100755 index 0000000..4ce688d --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/pre-rebase.sample b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/pre-rebase.sample new file mode 100755 index 0000000..6cbef5c --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/pre-receive.sample b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/pre-receive.sample new file mode 100755 index 0000000..a1fd29e --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/prepare-commit-msg.sample b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/prepare-commit-msg.sample new file mode 100755 index 0000000..10fa14c --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/push-to-checkout.sample b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/push-to-checkout.sample new file mode 100755 index 0000000..af5a0c0 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/hooks/push-to-checkout.sample @@ -0,0 +1,78 @@ +#!/bin/sh + +# An example hook script to update a checked-out tree on a git push. +# +# This hook is invoked by git-receive-pack(1) when it reacts to git +# push and updates reference(s) in its repository, and when the push +# tries to update the branch that is currently checked out and the +# receive.denyCurrentBranch configuration variable is set to +# updateInstead. +# +# By default, such a push is refused if the working tree and the index +# of the remote repository has any difference from the currently +# checked out commit; when both the working tree and the index match +# the current commit, they are updated to match the newly pushed tip +# of the branch. This hook is to be used to override the default +# behaviour; however the code below reimplements the default behaviour +# as a starting point for convenient modification. +# +# The hook receives the commit with which the tip of the current +# branch is going to be updated: +commit=$1 + +# It can exit with a non-zero status to refuse the push (when it does +# so, it must not modify the index or the working tree). +die () { + echo >&2 "$*" + exit 1 +} + +# Or it can make any necessary changes to the working tree and to the +# index to bring them to the desired state when the tip of the current +# branch is updated to the new commit, and exit with a zero status. +# +# For example, the hook can simply run git read-tree -u -m HEAD "$1" +# in order to emulate git fetch that is run in the reverse direction +# with git push, as the two-tree form of git read-tree -u -m is +# essentially the same as git switch or git checkout that switches +# branches while keeping the local changes in the working tree that do +# not interfere with the difference between the branches. + +# The below is a more-or-less exact translation to shell of the C code +# for the default behaviour for git's push-to-checkout hook defined in +# the push_to_deploy() function in builtin/receive-pack.c. +# +# Note that the hook will be executed from the repository directory, +# not from the working tree, so if you want to perform operations on +# the working tree, you will have to adapt your code accordingly, e.g. +# by adding "cd .." or using relative paths. + +if ! git update-index -q --ignore-submodules --refresh +then + die "Up-to-date check failed" +fi + +if ! git diff-files --quiet --ignore-submodules -- +then + die "Working directory has unstaged changes" +fi + +# This is a rough translation of: +# +# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX +if git cat-file -e HEAD 2>/dev/null +then + head=HEAD +else + head=$(git hash-object -t tree --stdin &2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero=$(git hash-object --stdin &2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/info/exclude b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/objects/pack/pack-e00c52fce8ad7cb22f44d3d152ca8b1012327176.idx b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/objects/pack/pack-e00c52fce8ad7cb22f44d3d152ca8b1012327176.idx new file mode 100644 index 0000000..ff5b849 Binary files /dev/null and b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/objects/pack/pack-e00c52fce8ad7cb22f44d3d152ca8b1012327176.idx differ diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/objects/pack/pack-e00c52fce8ad7cb22f44d3d152ca8b1012327176.pack b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/objects/pack/pack-e00c52fce8ad7cb22f44d3d152ca8b1012327176.pack new file mode 100644 index 0000000..d412145 Binary files /dev/null and b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/objects/pack/pack-e00c52fce8ad7cb22f44d3d152ca8b1012327176.pack differ diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/assertion-fix b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/assertion-fix new file mode 100644 index 0000000..88f8bc0 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/assertion-fix @@ -0,0 +1 @@ +89e1019d64a86425211be6200770576cbdf3e8b3 diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/atomics b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/atomics new file mode 100644 index 0000000..7ec0928 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/atomics @@ -0,0 +1 @@ +aaa8ef61969d0416c178038d8ae7ea91a0d767df diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/atomics-v2 b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/atomics-v2 new file mode 100644 index 0000000..844394a --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/atomics-v2 @@ -0,0 +1 @@ +d01798091dab8ab5fdcd9b5dc6ee61b574a41cae diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/atomics_merge b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/atomics_merge new file mode 100644 index 0000000..5f5b106 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/atomics_merge @@ -0,0 +1 @@ +49581f12e61941ca93e063ceb89514a2d932854a diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/control-pulp b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/control-pulp new file mode 100644 index 0000000..ce5821f --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/control-pulp @@ -0,0 +1 @@ +1f2bf749a8438528ee827ea81998862edcfe9d6e diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/jg_support b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/jg_support new file mode 100644 index 0000000..b8b326e --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/jg_support @@ -0,0 +1 @@ +4ff19495103c99d9dbc0c22497da1a117d01a7da diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/master b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/master new file mode 100644 index 0000000..f01e565 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/master @@ -0,0 +1 @@ +2967d8d17be0a6139229ca8d3d4956e182aec3de diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/resp_wen b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/resp_wen new file mode 100644 index 0000000..5dd38c8 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/resp_wen @@ -0,0 +1 @@ +8c6c2273d60077002834d2cb5d8e44ee0de3e32c diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/vega b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/vega new file mode 100644 index 0000000..9b0836a --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/remotes/origin/vega @@ -0,0 +1 @@ +fac1a54c31e0b61c48b9436dea09943db5b081be diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/bender-tmp-1284def6c0b7f7e9355eb093d00883ad9dead1b7 b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/bender-tmp-1284def6c0b7f7e9355eb093d00883ad9dead1b7 new file mode 100644 index 0000000..30099ca --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/bender-tmp-1284def6c0b7f7e9355eb093d00883ad9dead1b7 @@ -0,0 +1 @@ +1284def6c0b7f7e9355eb093d00883ad9dead1b7 diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/pulp-v1.0 b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/pulp-v1.0 new file mode 100644 index 0000000..1652b25 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/pulp-v1.0 @@ -0,0 +1 @@ +cac00c5810494693ff9cdf69a630191751956bcf diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.0.1 b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.0.1 new file mode 100644 index 0000000..9b0836a --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.0.1 @@ -0,0 +1 @@ +fac1a54c31e0b61c48b9436dea09943db5b081be diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.0.2 b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.0.2 new file mode 100644 index 0000000..52ca291 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.0.2 @@ -0,0 +1 @@ +d088ef824b5314f74d9b85f138dabb4f2746d0a2 diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.0.3 b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.0.3 new file mode 100644 index 0000000..e53c86c --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.0.3 @@ -0,0 +1 @@ +f0dc98b36884b20efc7e0b3476c96be48d4ea6d2 diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.1 b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.1 new file mode 100644 index 0000000..94c2e04 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.1 @@ -0,0 +1 @@ +eeb8d0e97ff426865ce5baa2c4a9826ff2a5a998 diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.1.0 b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.1.0 new file mode 100644 index 0000000..94c2e04 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.1.0 @@ -0,0 +1 @@ +eeb8d0e97ff426865ce5baa2c4a9826ff2a5a998 diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.1.1 b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.1.1 new file mode 100644 index 0000000..26e0b6f --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.1.1 @@ -0,0 +1 @@ +02a5eaef88170037b0b678cb169ab027540865a0 diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.1.2 b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.1.2 new file mode 100644 index 0000000..970bee8 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.1.2 @@ -0,0 +1 @@ +2dc55ed7f6dc03c405c256dd9107ae0159328708 diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.2.0 b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.2.0 new file mode 100644 index 0000000..0bca54b --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.2.0 @@ -0,0 +1 @@ +15067138873959641e013b8fc55719e18b52a9af diff --git a/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.2.1 b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.2.1 new file mode 100644 index 0000000..8a0e5a0 --- /dev/null +++ b/.bender/git/db/cluster_interconnect-b387c598c6b7108b/refs/tags/v1.2.1 @@ -0,0 +1 @@ +7d0a4f8acae71a583a6713cab5554e60b9bb8d27 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/FETCH_HEAD b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/FETCH_HEAD new file mode 100644 index 0000000..33268c9 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/FETCH_HEAD @@ -0,0 +1,110 @@ +153bedd63a4783ff668dd696d6e1c5be4134b9ba not-for-merge branch 'arnold' of https://github.com/pulp-platform/common_cells +340c8699c3da4e42f8ae56465187db19683de880 not-for-merge branch 'barrel_shift' of https://github.com/pulp-platform/common_cells +dcf84ce10999dc94f1e9815348027f6ead8456cf not-for-merge branch 'bvt_arb_tree-tbenz' of https://github.com/pulp-platform/common_cells +e2486afcca71b685188f4fc8998b2f08f41bd961 not-for-merge branch 'carfield' of https://github.com/pulp-platform/common_cells +292bd92614f14e8dfb42c39e52a00cebcc77922f not-for-merge branch 'ci-run/verilator_asserts' of https://github.com/pulp-platform/common_cells +43364b6a1078a75825965a6a66581efb25de64a1 not-for-merge branch 'ci/skip-gitlab-ext' of https://github.com/pulp-platform/common_cells +0a9dc988745b64e12f929a1dd9bc44d8068a2bc3 not-for-merge branch 'control-pulp' of https://github.com/pulp-platform/common_cells +ac52f10b814f57ef5853bce43cf5d65e6fd1b447 not-for-merge branch 'fix-ci' of https://github.com/pulp-platform/common_cells +8207f1ddccdf7ad217a63646eeb10eee528d6a30 not-for-merge branch 'fix-clk-div' of https://github.com/pulp-platform/common_cells +07c84b1a2c0ef667737424e1f17dd4d278693b31 not-for-merge branch 'fix-compile-order' of https://github.com/pulp-platform/common_cells +eb425a5c76f3c2ae0c1b20f97e6c0d8fd28a1eef not-for-merge branch 'fix-ipapprox-includes' of https://github.com/pulp-platform/common_cells +ac52f10b814f57ef5853bce43cf5d65e6fd1b447 not-for-merge branch 'fix-style' of https://github.com/pulp-platform/common_cells +9be5ed7655b2b35974847fcfd079c98f3c2e397d not-for-merge branch 'fix/unread-xilinx' of https://github.com/pulp-platform/common_cells +2c094d546372ad31a5a5d77586516fe4d49edb57 not-for-merge branch 'flaviens-master' of https://github.com/pulp-platform/common_cells +86cc827e136a3c426b1ff3a2b693ac66c58db1df not-for-merge branch 'icg-shift-reg' of https://github.com/pulp-platform/common_cells +5a7cab001f1f5e15d2e847c6c5f787102f8b91a7 not-for-merge branch 'id_queue-exists_data' of https://github.com/pulp-platform/common_cells +aee15a31c84de6923652e7cd94830f40375a4070 not-for-merge branch 'lleone/pwr-mbank-mem' of https://github.com/pulp-platform/common_cells +f36828f3fd76fa6c79f80cb495829cf967bcf20c not-for-merge branch 'master' of https://github.com/pulp-platform/common_cells +7de94d7666802543a4b81e7659027ec1bca86542 not-for-merge branch 'max_pow_two-tbenz' of https://github.com/pulp-platform/common_cells +c439813c28dda0d6b74e9b72539c546c9c15c5ae not-for-merge branch 'michaero/mem_to_banks_passthrough' of https://github.com/pulp-platform/common_cells +0fd2ba32926c0360534dc3d5795143cb259abb1c not-for-merge branch 'multicast-xbar' of https://github.com/pulp-platform/common_cells +17f9145119ecfb02126cf8486db1d566a669b8a7 not-for-merge branch 'nw/rstsync' of https://github.com/pulp-platform/common_cells +0b8c10c21c9f810509bbd7bf86cfbdc4e6626c8e not-for-merge branch 'pulp-soc' of https://github.com/pulp-platform/common_cells +842753eabe166818bde831908c865872d115528d not-for-merge branch 'remove-ffnr' of https://github.com/pulp-platform/common_cells +3e433be23a022467a33bebc6c8ef7a6effb5b93e not-for-merge branch 'rr_distributor' of https://github.com/pulp-platform/common_cells +7522cba64336f130a538b6f869618960210bcd98 not-for-merge branch 'scheremo/vlt' of https://github.com/pulp-platform/common_cells +944538538befdbd26698800bfd24f808373e82b7 not-for-merge branch 'sync_t' of https://github.com/pulp-platform/common_cells +78ca0981f2814848d4a3263d6ee8c56ecbe725f9 not-for-merge branch 'update-deps' of https://github.com/pulp-platform/common_cells +98ca464b2c1ee1707abcc0c89710e405a35bc695 not-for-merge branch 'v2.0.0' of https://github.com/pulp-platform/common_cells +5e5c3dc11a9f6b4f0a5ebd0c87a2981bd06ff9fb not-for-merge branch 'vega' of https://github.com/pulp-platform/common_cells +d71f337d85ce2dc6c045b93bc3ea1c64e1cbfffa not-for-merge branch 'vivosoc4_TO' of https://github.com/pulp-platform/common_cells +8d72ec6eb84445ac4cf2e1cfd4273d85e1b5eb40 not-for-merge branch 'yt/carfield' of https://github.com/pulp-platform/common_cells +b86af02f630977efe570961444583cac03d8e2c2 not-for-merge tag '1.14.0' of https://github.com/pulp-platform/common_cells +5b7021208a3ff818a617b497c5b5564f412fe0a8 not-for-merge tag 'pulpissimo-v1.0' of https://github.com/pulp-platform/common_cells +3d424e6e40f9a868aef4edb20bb2af892fddef9e not-for-merge tag 'v0.1.0' of https://github.com/pulp-platform/common_cells +a1be6bdf11b0e7140b789d1f11e1b325a9098b87 not-for-merge tag 'v0.1.1' of https://github.com/pulp-platform/common_cells +c66d46151f789e0b6113628b3de7adc1db71fb6f not-for-merge tag 'v1.0.0' of https://github.com/pulp-platform/common_cells +e3163d004412ac8fe622a788fa212d53845cfb8b not-for-merge tag 'v1.0.1' of https://github.com/pulp-platform/common_cells +e3910278d95debde97ddc9056e7052e7e17bf663 not-for-merge tag 'v1.1.0' of https://github.com/pulp-platform/common_cells +f1091dc68757d2984b4a974747b0bd1c6f34415f not-for-merge tag 'v1.1.1' of https://github.com/pulp-platform/common_cells +4a8e5684ba8da9e3797ab76ebe5f92cd12b11470 not-for-merge tag 'v1.10.0' of https://github.com/pulp-platform/common_cells +d55cba3e941c25e9716bf59877acfd3ec354f545 not-for-merge tag 'v1.11.0' of https://github.com/pulp-platform/common_cells +761c645a8d3be832030f503def55f5ea95b8a5bd not-for-merge tag 'v1.11.0-rc.1' of https://github.com/pulp-platform/common_cells +b6436016a1022d0069e7d4424ef5087798ee9e67 not-for-merge tag 'v1.13.0' of https://github.com/pulp-platform/common_cells +790f2385c01c83022474eede55809666209216e3 not-for-merge tag 'v1.13.1' of https://github.com/pulp-platform/common_cells +c679592d358f7228cba52238360cf8a74ac09036 not-for-merge tag 'v1.13.2' of https://github.com/pulp-platform/common_cells +b86af02f630977efe570961444583cac03d8e2c2 not-for-merge tag 'v1.14.0' of https://github.com/pulp-platform/common_cells +6637d86a522236a15e940bd0699a8b64b576f5b1 not-for-merge tag 'v1.15.0' of https://github.com/pulp-platform/common_cells +d83d91d9f48ba2a8cb5a3c0f84df9161c26a5d8d not-for-merge tag 'v1.16.0' of https://github.com/pulp-platform/common_cells +10fde7f3675fe45266d26b1fb8aa4724214f582c not-for-merge tag 'v1.16.1' of https://github.com/pulp-platform/common_cells +46b3907d9ac97861ab5dee27d177b76530fdd038 not-for-merge tag 'v1.16.2' of https://github.com/pulp-platform/common_cells +bbc0bf4699eb2c6babafce5924d86810507189a2 not-for-merge tag 'v1.16.3' of https://github.com/pulp-platform/common_cells +8377412a4594c39c618ae4099983bf1e86bf08c4 not-for-merge tag 'v1.16.4' of https://github.com/pulp-platform/common_cells +0f9b8f08c0ea56b4e1b07f435c6443a88dee286f not-for-merge tag 'v1.17.0' of https://github.com/pulp-platform/common_cells +e45cc82dc720655b0d345bd195bfa798514b6f3e not-for-merge tag 'v1.18.0' of https://github.com/pulp-platform/common_cells +eb425a5c76f3c2ae0c1b20f97e6c0d8fd28a1eef not-for-merge tag 'v1.19.0' of https://github.com/pulp-platform/common_cells +ab9dbf88f1c1081b50a72e4dcc3e84ba77fc7a90 not-for-merge tag 'v1.2.0' of https://github.com/pulp-platform/common_cells +2283d8d4c31d3fcd5fcf0f4db5b7e26dadc556e2 not-for-merge tag 'v1.2.1' of https://github.com/pulp-platform/common_cells +466043804d71760602ad653db4fe33e07fd47b5b not-for-merge tag 'v1.2.2' of https://github.com/pulp-platform/common_cells +c310954c9272c3da5ae589a92c85b043b960a1fc not-for-merge tag 'v1.2.3' of https://github.com/pulp-platform/common_cells +a06e4beb08b8c0a5ef2c85d9afcfe0d96be76f30 not-for-merge tag 'v1.20.0' of https://github.com/pulp-platform/common_cells +61e4de81cb131687c6d0ea35ec101b448309415d not-for-merge tag 'v1.20.1' of https://github.com/pulp-platform/common_cells +6aeee85d0a34fedc06c14f04fd6363c9f7b4eeea not-for-merge tag 'v1.21.0' of https://github.com/pulp-platform/common_cells +343949f818e56e1cec65fd5e1fa7b6dd38cd77bf not-for-merge tag 'v1.22.0' of https://github.com/pulp-platform/common_cells +015917ff33e5f944e866814f72f2074fb0f4220f not-for-merge tag 'v1.22.1' of https://github.com/pulp-platform/common_cells +dc555643226419b7a602f0aa39d449545ea4c1f2 not-for-merge tag 'v1.23.0' of https://github.com/pulp-platform/common_cells +6fa6f66b9f9a2d45d7a7bdc4c01e055a544ea636 not-for-merge tag 'v1.24.0' of https://github.com/pulp-platform/common_cells +713acf6e78bd9ec001dba216ce4ac301a04a057f not-for-merge tag 'v1.24.1' of https://github.com/pulp-platform/common_cells +a8e6c3d421588a7a89cf6d497519c16f47b4789e not-for-merge tag 'v1.25.0' of https://github.com/pulp-platform/common_cells +bbe5c8863f7e62051962e8cc6544e2c8abc31dd0 not-for-merge tag 'v1.26.0' of https://github.com/pulp-platform/common_cells +02dc52b7e3d139cd8f0da162946e3858210e1f14 not-for-merge tag 'v1.27.0' of https://github.com/pulp-platform/common_cells +9c1a1bdbd1a0928340863cad90c6fc0503da43a7 not-for-merge tag 'v1.27.1' of https://github.com/pulp-platform/common_cells +4dc9413990622dcbf4b37a19f792834c800da5c7 not-for-merge tag 'v1.28.0' of https://github.com/pulp-platform/common_cells +4ac82b420e46fd0005513ca2283cb3c905e7599a not-for-merge tag 'v1.29.0' of https://github.com/pulp-platform/common_cells +c8deba266585c5824044b74b7fe25c2cd6acfe38 not-for-merge tag 'v1.3.0' of https://github.com/pulp-platform/common_cells +88942228c971898ee732091a689105c82c1b20bf not-for-merge tag 'v1.30.0' of https://github.com/pulp-platform/common_cells +aed978efcef722859025085ae72e52c41ea45b32 not-for-merge tag 'v1.31.0' of https://github.com/pulp-platform/common_cells +53b0b58af2db5bd3c850a7038fae170ed78326bb not-for-merge tag 'v1.31.1' of https://github.com/pulp-platform/common_cells +2bd027cb87eaa9bf7d17196ec5f69864b35b630f not-for-merge tag 'v1.32.0' of https://github.com/pulp-platform/common_cells +13f28aa0021fc22c0d01a12d618fda58d2c93239 not-for-merge tag 'v1.33.0' of https://github.com/pulp-platform/common_cells +ad22699793d98ef714f120c6268fe92d096a61e1 not-for-merge tag 'v1.33.1' of https://github.com/pulp-platform/common_cells +7773d971b9d7bef7f5f6a2ef36ee1e4d02cefcd3 not-for-merge tag 'v1.34.0' of https://github.com/pulp-platform/common_cells +0d67563b6b592549542544f1abc0f43e5d4ee8b4 not-for-merge tag 'v1.35.0' of https://github.com/pulp-platform/common_cells +be3866eb3ed5b8ac7bc9a9ec9f8ae86137cd0a45 not-for-merge tag 'v1.36.0' of https://github.com/pulp-platform/common_cells +c27bce39ebb2e6bae52f60960814a2afca7bd4cb not-for-merge tag 'v1.37.0' of https://github.com/pulp-platform/common_cells +7fdaaa140bf330574bc585dac23692120440a9e6 not-for-merge tag 'v1.4.0' of https://github.com/pulp-platform/common_cells +4a5025558770bd98c8b2df596b0eafc084ed19d9 not-for-merge tag 'v1.5.0' of https://github.com/pulp-platform/common_cells +53dd5c50a43adc4d84c5ba5731ccb867d8f5a188 not-for-merge tag 'v1.5.1' of https://github.com/pulp-platform/common_cells +c87025ffa796b1e5b840c3f5516f905a62184f23 not-for-merge tag 'v1.5.2' of https://github.com/pulp-platform/common_cells +5e7e02f4874ee5be817acd446bcf51248ecaab94 not-for-merge tag 'v1.5.3' of https://github.com/pulp-platform/common_cells +3554f4c9688f25a09cc4e7f8f6d48b8c9d2ecdfd not-for-merge tag 'v1.5.4' of https://github.com/pulp-platform/common_cells +30181d35baff0958b0e3b9605812d726a0b4bc51 not-for-merge tag 'v1.6.0' of https://github.com/pulp-platform/common_cells +62e218d962f0c95a9d4ee645ffafea7307412388 not-for-merge tag 'v1.7.0' of https://github.com/pulp-platform/common_cells +6f41c24cc8a5760f0416ea32fe4eb3a6ccfe1711 not-for-merge tag 'v1.7.1' of https://github.com/pulp-platform/common_cells +4583a4d6ec597e488cfe9daa9543cb250bc8b254 not-for-merge tag 'v1.7.2' of https://github.com/pulp-platform/common_cells +4277217c9ae8b1228f801e5a67de9ecdce8d887f not-for-merge tag 'v1.7.3' of https://github.com/pulp-platform/common_cells +4ddb77914eed42f7980a45c16f58fd82dd8b2292 not-for-merge tag 'v1.7.4' of https://github.com/pulp-platform/common_cells +774b92518a95b983d8587a6fc583e01376629bb0 not-for-merge tag 'v1.7.5' of https://github.com/pulp-platform/common_cells +2fa06364e3865325668fa32b35aa1de0213b8c24 not-for-merge tag 'v1.7.6' of https://github.com/pulp-platform/common_cells +21a060d2c2c75173312b82cc72db96a2c62e66c5 not-for-merge tag 'v1.7.7' of https://github.com/pulp-platform/common_cells +ef352e68becc9e33c64f5b051ad05c3d86b4d598 not-for-merge tag 'v1.8.0' of https://github.com/pulp-platform/common_cells +a7992b6e5316ee4fa3e5396e6d4c568ef595e7e1 not-for-merge tag 'vega_v1.10.0' of https://github.com/pulp-platform/common_cells +c3921426d923c601e3289e59985eaca72dce03fe not-for-merge tag 'vega_v1.10.1' of https://github.com/pulp-platform/common_cells +a8b2d5fe061f3aec1dbbb21f6afb1d5618204944 not-for-merge tag 'vega_v1.10.2' of https://github.com/pulp-platform/common_cells +19e75a32044792ac09e94e27487d482c3f9ea098 not-for-merge tag 'vega_v1.10.3' of https://github.com/pulp-platform/common_cells +6f2fc268f2bfc6e9663299e2dce3e9c25075e174 not-for-merge tag 'vega_v1.10.4' of https://github.com/pulp-platform/common_cells +e997b35eb7c02577e75f9286b1bd8b31dd84de33 not-for-merge tag 'vega_v1.10.5' of https://github.com/pulp-platform/common_cells +e526fb904c8d4e3c8e4f3094219c31aa48badf4d not-for-merge tag 'vega_v1.10.6' of https://github.com/pulp-platform/common_cells +d589e3b4e93aae971cd6b393d0f5dc694a531b50 not-for-merge tag 'vega_v1.10.7' of https://github.com/pulp-platform/common_cells +e822cb3185ebc02e0179f33e33788f22b517e5aa not-for-merge tag 'vega_v1.10.8' of https://github.com/pulp-platform/common_cells diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/HEAD b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/HEAD new file mode 100644 index 0000000..cb089cd --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/config b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/config new file mode 100644 index 0000000..5e689e7 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/config @@ -0,0 +1,7 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true +[remote "origin"] + url = https://github.com/pulp-platform/common_cells.git + fetch = +refs/heads/*:refs/remotes/origin/* diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/description b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/applypatch-msg.sample b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/applypatch-msg.sample new file mode 100755 index 0000000..a5d7b84 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/commit-msg.sample b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/commit-msg.sample new file mode 100755 index 0000000..b58d118 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/fsmonitor-watchman.sample b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/fsmonitor-watchman.sample new file mode 100755 index 0000000..14ed0aa --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/fsmonitor-watchman.sample @@ -0,0 +1,173 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use IPC::Open2; + +# An example hook script to integrate Watchman +# (https://facebook.github.io/watchman/) with git to speed up detecting +# new and modified files. +# +# The hook is passed a version (currently 2) and last update token +# formatted as a string and outputs to stdout a new update token and +# all files that have been modified since the update token. Paths must +# be relative to the root of the working tree and separated by a single NUL. +# +# To enable this hook, rename this file to "query-watchman" and set +# 'git config core.fsmonitor .git/hooks/query-watchman' +# +my ($version, $last_update_token) = @ARGV; + +# Uncomment for debugging +# print STDERR "$0 $version $last_update_token\n"; + +# Check the hook interface version +if ($version ne 2) { + die "Unsupported query-fsmonitor hook version '$version'.\n" . + "Falling back to scanning...\n"; +} + +my $git_work_tree = get_working_dir(); + +my $retry = 1; + +my $json_pkg; +eval { + require JSON::XS; + $json_pkg = "JSON::XS"; + 1; +} or do { + require JSON::PP; + $json_pkg = "JSON::PP"; +}; + +launch_watchman(); + +sub launch_watchman { + my $o = watchman_query(); + if (is_work_tree_watched($o)) { + output_result($o->{clock}, @{$o->{files}}); + } +} + +sub output_result { + my ($clockid, @files) = @_; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # binmode $fh, ":utf8"; + # print $fh "$clockid\n@files\n"; + # close $fh; + + binmode STDOUT, ":utf8"; + print $clockid; + print "\0"; + local $, = "\0"; + print @files; +} + +sub watchman_clock { + my $response = qx/watchman clock "$git_work_tree"/; + die "Failed to get clock id on '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + + return $json_pkg->new->utf8->decode($response); +} + +sub watchman_query { + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') + or die "open2() failed: $!\n" . + "Falling back to scanning...\n"; + + # In the query expression below we're asking for names of files that + # changed since $last_update_token but not from the .git folder. + # + # To accomplish this, we're using the "since" generator to use the + # recency index to select candidate nodes and "fields" to limit the + # output to file names only. Then we're using the "expression" term to + # further constrain the results. + if (substr($last_update_token, 0, 1) eq "c") { + $last_update_token = "\"$last_update_token\""; + } + my $query = <<" END"; + ["query", "$git_work_tree", { + "since": $last_update_token, + "fields": ["name"], + "expression": ["not", ["dirname", ".git"]] + }] + END + + # Uncomment for debugging the watchman query + # open (my $fh, ">", ".git/watchman-query.json"); + # print $fh $query; + # close $fh; + + print CHLD_IN $query; + close CHLD_IN; + my $response = do {local $/; }; + + # Uncomment for debugging the watch response + # open ($fh, ">", ".git/watchman-response.json"); + # print $fh $response; + # close $fh; + + die "Watchman: command returned no output.\n" . + "Falling back to scanning...\n" if $response eq ""; + die "Watchman: command returned invalid output: $response\n" . + "Falling back to scanning...\n" unless $response =~ /^\{/; + + return $json_pkg->new->utf8->decode($response); +} + +sub is_work_tree_watched { + my ($output) = @_; + my $error = $output->{error}; + if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { + $retry--; + my $response = qx/watchman watch "$git_work_tree"/; + die "Failed to make watchman watch '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + $output = $json_pkg->new->utf8->decode($response); + $error = $output->{error}; + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # close $fh; + + # Watchman will always return all files on the first query so + # return the fast "everything is dirty" flag to git and do the + # Watchman query just to get it over with now so we won't pay + # the cost in git to look up each individual file. + my $o = watchman_clock(); + $error = $output->{error}; + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + output_result($o->{clock}, ("/")); + $last_update_token = $o->{clock}; + + eval { launch_watchman() }; + return 0; + } + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + return 1; +} + +sub get_working_dir { + my $working_dir; + if ($^O =~ 'msys' || $^O =~ 'cygwin') { + $working_dir = Win32::GetCwd(); + $working_dir =~ tr/\\/\//; + } else { + require Cwd; + $working_dir = Cwd::cwd(); + } + + return $working_dir; +} diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/post-update.sample b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/post-update.sample new file mode 100755 index 0000000..ec17ec1 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/pre-applypatch.sample b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/pre-applypatch.sample new file mode 100755 index 0000000..4142082 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/pre-commit.sample b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/pre-commit.sample new file mode 100755 index 0000000..e144712 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --type=bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/pre-merge-commit.sample b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/pre-merge-commit.sample new file mode 100755 index 0000000..399eab1 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/pre-push.sample b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/pre-push.sample new file mode 100755 index 0000000..4ce688d --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/pre-rebase.sample b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/pre-rebase.sample new file mode 100755 index 0000000..6cbef5c --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/pre-receive.sample b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/pre-receive.sample new file mode 100755 index 0000000..a1fd29e --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/prepare-commit-msg.sample b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/prepare-commit-msg.sample new file mode 100755 index 0000000..10fa14c --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/push-to-checkout.sample b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/push-to-checkout.sample new file mode 100755 index 0000000..af5a0c0 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/hooks/push-to-checkout.sample @@ -0,0 +1,78 @@ +#!/bin/sh + +# An example hook script to update a checked-out tree on a git push. +# +# This hook is invoked by git-receive-pack(1) when it reacts to git +# push and updates reference(s) in its repository, and when the push +# tries to update the branch that is currently checked out and the +# receive.denyCurrentBranch configuration variable is set to +# updateInstead. +# +# By default, such a push is refused if the working tree and the index +# of the remote repository has any difference from the currently +# checked out commit; when both the working tree and the index match +# the current commit, they are updated to match the newly pushed tip +# of the branch. This hook is to be used to override the default +# behaviour; however the code below reimplements the default behaviour +# as a starting point for convenient modification. +# +# The hook receives the commit with which the tip of the current +# branch is going to be updated: +commit=$1 + +# It can exit with a non-zero status to refuse the push (when it does +# so, it must not modify the index or the working tree). +die () { + echo >&2 "$*" + exit 1 +} + +# Or it can make any necessary changes to the working tree and to the +# index to bring them to the desired state when the tip of the current +# branch is updated to the new commit, and exit with a zero status. +# +# For example, the hook can simply run git read-tree -u -m HEAD "$1" +# in order to emulate git fetch that is run in the reverse direction +# with git push, as the two-tree form of git read-tree -u -m is +# essentially the same as git switch or git checkout that switches +# branches while keeping the local changes in the working tree that do +# not interfere with the difference between the branches. + +# The below is a more-or-less exact translation to shell of the C code +# for the default behaviour for git's push-to-checkout hook defined in +# the push_to_deploy() function in builtin/receive-pack.c. +# +# Note that the hook will be executed from the repository directory, +# not from the working tree, so if you want to perform operations on +# the working tree, you will have to adapt your code accordingly, e.g. +# by adding "cd .." or using relative paths. + +if ! git update-index -q --ignore-submodules --refresh +then + die "Up-to-date check failed" +fi + +if ! git diff-files --quiet --ignore-submodules -- +then + die "Working directory has unstaged changes" +fi + +# This is a rough translation of: +# +# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX +if git cat-file -e HEAD 2>/dev/null +then + head=HEAD +else + head=$(git hash-object -t tree --stdin &2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero=$(git hash-object --stdin &2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/info/exclude b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/02/be05590b37c7907f9168ecb57a3c4ea3eca54d b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/02/be05590b37c7907f9168ecb57a3c4ea3eca54d new file mode 100644 index 0000000..17efd0b Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/02/be05590b37c7907f9168ecb57a3c4ea3eca54d differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/05/5894f5e8bc7660d72a5e206bed829ec7aee5d6 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/05/5894f5e8bc7660d72a5e206bed829ec7aee5d6 new file mode 100644 index 0000000..521aa35 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/05/5894f5e8bc7660d72a5e206bed829ec7aee5d6 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/06/c7c1efcaa9ea9268fadea19b3030275417f2ea b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/06/c7c1efcaa9ea9268fadea19b3030275417f2ea new file mode 100644 index 0000000..0e403aa Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/06/c7c1efcaa9ea9268fadea19b3030275417f2ea differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/09/be42a03c5131b454d80ed26fda524c2469c2cc b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/09/be42a03c5131b454d80ed26fda524c2469c2cc new file mode 100644 index 0000000..4b985a8 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/09/be42a03c5131b454d80ed26fda524c2469c2cc differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/0b/9efe355d395f98f41e525dcb1fac1b7b9ea161 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/0b/9efe355d395f98f41e525dcb1fac1b7b9ea161 new file mode 100644 index 0000000..5b24213 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/0b/9efe355d395f98f41e525dcb1fac1b7b9ea161 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/0d/4dfed1730ade9277ef37abfa819730751ad5a4 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/0d/4dfed1730ade9277ef37abfa819730751ad5a4 new file mode 100644 index 0000000..36767a2 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/0d/4dfed1730ade9277ef37abfa819730751ad5a4 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/12/f7cc5a28995ced98c98af688b32327f59b5f0a b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/12/f7cc5a28995ced98c98af688b32327f59b5f0a new file mode 100644 index 0000000..dde8027 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/12/f7cc5a28995ced98c98af688b32327f59b5f0a differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/16/f319b362ba94473633f646423fa3b4aeb5ff78 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/16/f319b362ba94473633f646423fa3b4aeb5ff78 new file mode 100644 index 0000000..f902312 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/16/f319b362ba94473633f646423fa3b4aeb5ff78 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/18/f481ec30783599eb8be92d1834d0e1c384ac25 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/18/f481ec30783599eb8be92d1834d0e1c384ac25 new file mode 100644 index 0000000..6b4d66e Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/18/f481ec30783599eb8be92d1834d0e1c384ac25 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/1a/ba3803a5bace45864342fcaf2c413ebb5127ea b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/1a/ba3803a5bace45864342fcaf2c413ebb5127ea new file mode 100644 index 0000000..75c51ad Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/1a/ba3803a5bace45864342fcaf2c413ebb5127ea differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/1e/a882687da4b26f1bb24423c13df93c821795d0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/1e/a882687da4b26f1bb24423c13df93c821795d0 new file mode 100644 index 0000000..e74bb3e Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/1e/a882687da4b26f1bb24423c13df93c821795d0 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/2c/be6e69ead2fc0635e8268a950cbd0a438ec73a b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/2c/be6e69ead2fc0635e8268a950cbd0a438ec73a new file mode 100644 index 0000000..8a839cc Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/2c/be6e69ead2fc0635e8268a950cbd0a438ec73a differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/2c/dd5f61a7d9ca2b13094778da841636e6ca7270 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/2c/dd5f61a7d9ca2b13094778da841636e6ca7270 new file mode 100644 index 0000000..875ab20 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/2c/dd5f61a7d9ca2b13094778da841636e6ca7270 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/36/56290d40790815002256c456bc79f295e826fa b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/36/56290d40790815002256c456bc79f295e826fa new file mode 100644 index 0000000..bdc6186 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/36/56290d40790815002256c456bc79f295e826fa differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/38/e422962eee623850484db38cecc1ab01557889 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/38/e422962eee623850484db38cecc1ab01557889 new file mode 100644 index 0000000..70ecaf1 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/38/e422962eee623850484db38cecc1ab01557889 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/3e/0f7598babdfc5501c7943395cf36d2885cb092 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/3e/0f7598babdfc5501c7943395cf36d2885cb092 new file mode 100644 index 0000000..244ee6b Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/3e/0f7598babdfc5501c7943395cf36d2885cb092 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/3e/89b99136fc86f0b1cf7a5a7ce94416973fb5d4 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/3e/89b99136fc86f0b1cf7a5a7ce94416973fb5d4 new file mode 100644 index 0000000..d8bcac3 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/3e/89b99136fc86f0b1cf7a5a7ce94416973fb5d4 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/41/16a17d4216381c7be3e55ff6e2b4a12b734ab9 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/41/16a17d4216381c7be3e55ff6e2b4a12b734ab9 new file mode 100644 index 0000000..4568051 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/41/16a17d4216381c7be3e55ff6e2b4a12b734ab9 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/42/61b47065e746951eb4d9c1303b5a09c72383fb b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/42/61b47065e746951eb4d9c1303b5a09c72383fb new file mode 100644 index 0000000..573f04c Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/42/61b47065e746951eb4d9c1303b5a09c72383fb differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/43/3096cb2127b8fe25fc2edc239554021459dee8 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/43/3096cb2127b8fe25fc2edc239554021459dee8 new file mode 100644 index 0000000..b417aba Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/43/3096cb2127b8fe25fc2edc239554021459dee8 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/48/a0d262f049c8b7c194c8e16015b194ecda77c1 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/48/a0d262f049c8b7c194c8e16015b194ecda77c1 new file mode 100644 index 0000000..4461929 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/48/a0d262f049c8b7c194c8e16015b194ecda77c1 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/48/f33ab4ef715b21fb42d69237edc233dc5ee9ef b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/48/f33ab4ef715b21fb42d69237edc233dc5ee9ef new file mode 100644 index 0000000..9e32909 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/48/f33ab4ef715b21fb42d69237edc233dc5ee9ef @@ -0,0 +1 @@ +x”ÉÒ£V …³æ)îžêŸyJ¥SÁ˜ƒ1›®Ë Æ€làéãîTvYE©ÎB%Ò§´<êIý6yùvïq’¦°!Ýç­ }_Á#Ž<¥(2 S§ï„Ò·À8TUµêutç¶°p¯"=±Í]tn¢1dF]ñmû–3âë¾ÁÎüNÐļŸ?îÂ\C¤êöÒ@˸tu1¶öD¡S˜EI\.Ã-¼NNÈ[mÃ8Ä-P¢9êã웎oËS±ØÎ‡Ç…@@4Cñ%hiªY§ÖükNöâYãâÂRqOá&¢éšz´óø±¼µ¼˜³üé&R#ïÑÇèa<^[QöI Ôµì9UoÆX 0ÞÖÞ:C“¯R-Ëf=kúw¸ß.üõÀ]¥èe"`%ýwu烔ßΑ–éBpÖ¥÷û‰o½}—üÇéYV'‘…0‘Îeȉœn(9$f÷×%Œ…«Öxâ¾Ø˜sS{ºDwOw?QïršódåÝ]_ð)JË:[®²~¶¨*é®arj¼œ•5Î&ÿ1äÅݪÕ6IßNüìe’5?ªI×63ýÝse¬Â˔ӠÌZ`WŽ“;Vª®M‚Z}AôöÙBq(8Ý bþ‹èâ%(ãd-þeÄ-$Ç{AîÁI`ÿСÛ`Ôv‹êªé3Mpò|1Ÿ^rgôv¯ýÚÝ´=©úÁ¯ÓïøNö6‰üÃŒlÿ‹¤€mûc®Æ~)«c^ÖÓÒß?}^I={ן¢òÎý8!8gÄ \ No newline at end of file diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/4c/7be6d476a4afc43c4ed9fb97eca30dafd4fc9c b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/4c/7be6d476a4afc43c4ed9fb97eca30dafd4fc9c new file mode 100644 index 0000000..9871933 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/4c/7be6d476a4afc43c4ed9fb97eca30dafd4fc9c differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/50/2312bcd4dadfd90a05bffadd730d2b666fb980 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/50/2312bcd4dadfd90a05bffadd730d2b666fb980 new file mode 100644 index 0000000..eecc6f2 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/50/2312bcd4dadfd90a05bffadd730d2b666fb980 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/53/4cde5b4a02a80df62c8e6561f38b181292ed6e b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/53/4cde5b4a02a80df62c8e6561f38b181292ed6e new file mode 100644 index 0000000..61a11f5 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/53/4cde5b4a02a80df62c8e6561f38b181292ed6e differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/54/6ebcb3d5dec9438ea588bf8e3a22f8c08e350c b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/54/6ebcb3d5dec9438ea588bf8e3a22f8c08e350c new file mode 100644 index 0000000..9bee241 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/54/6ebcb3d5dec9438ea588bf8e3a22f8c08e350c differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/54/c305281ceaf975e8dce4a8b816ac6cce136235 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/54/c305281ceaf975e8dce4a8b816ac6cce136235 new file mode 100644 index 0000000..642f4b1 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/54/c305281ceaf975e8dce4a8b816ac6cce136235 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/55/d76c7a9438ba02a0d3cd21046203e6bb581783 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/55/d76c7a9438ba02a0d3cd21046203e6bb581783 new file mode 100644 index 0000000..4ae85eb Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/55/d76c7a9438ba02a0d3cd21046203e6bb581783 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/5a/e503bd61ea11cf5d5e7a1f8a579b4b59a57f01 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/5a/e503bd61ea11cf5d5e7a1f8a579b4b59a57f01 new file mode 100644 index 0000000..74ec4c3 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/5a/e503bd61ea11cf5d5e7a1f8a579b4b59a57f01 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/5d/2fb99d1ddceee048f6739fd381108e0adc9aac b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/5d/2fb99d1ddceee048f6739fd381108e0adc9aac new file mode 100644 index 0000000..0f7a3e3 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/5d/2fb99d1ddceee048f6739fd381108e0adc9aac differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/6b/d18203ef6f7c1efc97eea30568c3bd409b0fb6 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/6b/d18203ef6f7c1efc97eea30568c3bd409b0fb6 new file mode 100644 index 0000000..158d68d Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/6b/d18203ef6f7c1efc97eea30568c3bd409b0fb6 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/6c/f0933e6ec7209472a8c9ee05dff1aac8606f1d b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/6c/f0933e6ec7209472a8c9ee05dff1aac8606f1d new file mode 100644 index 0000000..f8f7b4f Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/6c/f0933e6ec7209472a8c9ee05dff1aac8606f1d differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/75/22cba64336f130a538b6f869618960210bcd98 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/75/22cba64336f130a538b6f869618960210bcd98 new file mode 100644 index 0000000..74d4878 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/75/22cba64336f130a538b6f869618960210bcd98 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/76/1c645a8d3be832030f503def55f5ea95b8a5bd b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/76/1c645a8d3be832030f503def55f5ea95b8a5bd new file mode 100644 index 0000000..307fd5f Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/76/1c645a8d3be832030f503def55f5ea95b8a5bd differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/78/096178b5a4058925ebe191fa0176e5c5fb7f7c b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/78/096178b5a4058925ebe191fa0176e5c5fb7f7c new file mode 100644 index 0000000..89f575d Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/78/096178b5a4058925ebe191fa0176e5c5fb7f7c differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/78/7d47232c91ab310b74214e01a8c71511ccfde7 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/78/7d47232c91ab310b74214e01a8c71511ccfde7 new file mode 100644 index 0000000..c58aa8d Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/78/7d47232c91ab310b74214e01a8c71511ccfde7 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/7b/433809ba8d838e7280f19c1ec2c64d7c137831 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/7b/433809ba8d838e7280f19c1ec2c64d7c137831 new file mode 100644 index 0000000..bfcd96d Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/7b/433809ba8d838e7280f19c1ec2c64d7c137831 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/7d/83a7ba56c092294ebe4d392c17550e70595236 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/7d/83a7ba56c092294ebe4d392c17550e70595236 new file mode 100644 index 0000000..b7cb0e1 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/7d/83a7ba56c092294ebe4d392c17550e70595236 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/7f/387051a80f91afa65a8f4151da481bd2ec8bfb b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/7f/387051a80f91afa65a8f4151da481bd2ec8bfb new file mode 100644 index 0000000..8bbac1e Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/7f/387051a80f91afa65a8f4151da481bd2ec8bfb differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/80/e155ab06ae8f763244cffce2ff49be23678259 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/80/e155ab06ae8f763244cffce2ff49be23678259 new file mode 100644 index 0000000..f1526f4 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/80/e155ab06ae8f763244cffce2ff49be23678259 @@ -0,0 +1 @@ +x+)JMU063c040031QÐKÏ,ÉLÏË/JeXÑÑqp/§ô›G˜¯ŸTý¬{c¹-’ªœÄ$ÝäL½Ê܆GeKþ„Fôù[³ëj¶§ÍvŸõGª *RóRR‹ÀªêWñïüþ¦„õûÒ‡ž—ï÷´ØY˜Uåìáèçîêãï®—›ÂPpÚ¸úœÂ®okT±ì6[œwÐðæ^¨:OgW¿`W‰'ßÊ&­T0Qó>Û¸ãØ‰@‡çîP%A®Ž.¾® sÎg¼‘=SûØ+€•#Ì/òÚA;¹F PÈÌKÎ)MIeØ6Iæ¡ gÌÛå;zŽþæš~ñ›ÛaˆŠâ¢d†›ò2N‹æ©òOÈ̺·rz^S°,”€Òñi™9©Å`ÎY²Qk£ºéå½×Me?Op4T†S’Z\Âà¢ôáÜ‹??<“ôíвwíFçûØ \ No newline at end of file diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/81/75a4f583e5bbbf617de8d8b84ef72082225f66 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/81/75a4f583e5bbbf617de8d8b84ef72082225f66 new file mode 100644 index 0000000..ce53014 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/81/75a4f583e5bbbf617de8d8b84ef72082225f66 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/82/5c0a9b5a86ff3cfa6ffc2f8373bdbe10e0b632 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/82/5c0a9b5a86ff3cfa6ffc2f8373bdbe10e0b632 new file mode 100644 index 0000000..83d9441 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/82/5c0a9b5a86ff3cfa6ffc2f8373bdbe10e0b632 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/87/029835e4be68ebab18ce23ffa0484ca80d2f26 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/87/029835e4be68ebab18ce23ffa0484ca80d2f26 new file mode 100644 index 0000000..aea291c Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/87/029835e4be68ebab18ce23ffa0484ca80d2f26 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/8a/c27645eaf0813cf6dc0ddae3684735bc146e23 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/8a/c27645eaf0813cf6dc0ddae3684735bc146e23 new file mode 100644 index 0000000..21cbda5 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/8a/c27645eaf0813cf6dc0ddae3684735bc146e23 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/94/dc53aea5ca34f45ad6ab09351e2cb614dbe530 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/94/dc53aea5ca34f45ad6ab09351e2cb614dbe530 new file mode 100644 index 0000000..4c4d6dd Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/94/dc53aea5ca34f45ad6ab09351e2cb614dbe530 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/95/29b28bc26fd5491aeb6ac923d06b33e6ecfa31 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/95/29b28bc26fd5491aeb6ac923d06b33e6ecfa31 new file mode 100644 index 0000000..5510c06 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/95/29b28bc26fd5491aeb6ac923d06b33e6ecfa31 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/96/bb4af4c3f248ca79dfd4c98b9a2fd993ee23cf b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/96/bb4af4c3f248ca79dfd4c98b9a2fd993ee23cf new file mode 100644 index 0000000..5364951 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/96/bb4af4c3f248ca79dfd4c98b9a2fd993ee23cf differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/a1/6f7efb5954cc834514a7217c7c920211a6142e b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/a1/6f7efb5954cc834514a7217c7c920211a6142e new file mode 100644 index 0000000..9ba64a2 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/a1/6f7efb5954cc834514a7217c7c920211a6142e differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/a3/40f6f5fdcbc3ed6bcae190e65c31340d57d5cc b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/a3/40f6f5fdcbc3ed6bcae190e65c31340d57d5cc new file mode 100644 index 0000000..bf206cb --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/a3/40f6f5fdcbc3ed6bcae190e65c31340d57d5cc @@ -0,0 +1,4 @@ +x•“I¯£V„³æWÜ=êæ2C+0`°ÍdlÌÛD —_&ã_Ÿ×OJVÙälJú¤*ÕâTöèûz4Mó¿M! óŒœ2Rš1B‘óœL'(’LfØ +)Ë"eEÂÒÄ`tÿtJ'Ñ(c¡(±¼,£TJ‘Ìä´Är9DtÆJ\’1<‘ÌSõÀ@¹ç%#8ÌxªÀïIûKÿ¬ëñ;BßÑT½¿gÕ€æyZ”dIâ i‰ì«ç„þW€ …Ê¡ë|ûuªnZðLœ-ÓQÂK q ö­·ª(ªV*¹Qëú «_V'.6Ü–Í ,!Ò¸4”îEfT´²õÿáHã&Ò|JÚíR5CMF¥%aáè›üŒžw…ÅŠ›w›ËžŸöu…ãAOf›$À&¤ æãå´e´8“^âæy’ǧˆ˜;%6p*ý=86iÈ.+zÒxU…HÛeÁ`=ß`CS•à<+U÷!ˆ%³Æx£¢ûÒ=9ã^®W\¼³F-ÎMMµdOu¦_nçp/Úˆr 0Á8Ne¿žvjù¦ëU=EQ0¦Yg÷ד׮it¾½y… š\ß+nÓõÐI"Ž!€¹·ìðGdq‹íäʹ üåÕ_e˜s®¸‡­Ý{ÇË¢‹,·ËÚ+O˜¶üy¥âÙ#€ÑÎ jZÙ­\æ÷a_.*V"J$ÚëÈ6««F&u5¿åkþá»='GèéYŠ^À:îmvN ½£¹wÐGÝŒ•Ï ßšÝ¥úèð½±å–‹wjo††,²ªcvÉÜÙßpÚ†n-våoåžõô%6cþMňO*k vÿ>°åƒÌ¹e‚=­kk:Ô§°9 +ºu{†69ãõr¯ •s"fê¹(¼ÞŒž?_'¨‰rTQ›q[Fö¼õëxö=² U_h$ ºÇ4{æÊ—üTßáêœ ¼Ö¯Øç ò‘'™*¹ÝÄ7ª‡BÛ¡br†ëQÊÅîq{ ÀÐp„c.Èó4Ç·"o7DÂB5(Rÿð¤´dÏš0ØÉ¨^ 4¿¸Ÿø)Ë·ÏgúÚ†îìþk1DQ¿¦ôPÆá I×}›*ü˜Ë + ø1|ÂøÀ7cç \ No newline at end of file diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/a3/91a32d61392e8ea9cc7e03553ceb666bc6120f b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/a3/91a32d61392e8ea9cc7e03553ceb666bc6120f new file mode 100644 index 0000000..bf1fb78 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/a3/91a32d61392e8ea9cc7e03553ceb666bc6120f differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/a4/9949e3e4319a99903af4771e2dcd3ba5ee5cd3 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/a4/9949e3e4319a99903af4771e2dcd3ba5ee5cd3 new file mode 100644 index 0000000..1aacb48 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/a4/9949e3e4319a99903af4771e2dcd3ba5ee5cd3 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/a7/1d87a4046c194920225c59411ada01d4077735 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/a7/1d87a4046c194920225c59411ada01d4077735 new file mode 100644 index 0000000..4c25081 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/a7/1d87a4046c194920225c59411ada01d4077735 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/a8/25dd82c7e494831ea3519faad18e99312b69f7 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/a8/25dd82c7e494831ea3519faad18e99312b69f7 new file mode 100644 index 0000000..9592e87 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/a8/25dd82c7e494831ea3519faad18e99312b69f7 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/aa/6e90a0c5719b822e44e61960ce396fce292545 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/aa/6e90a0c5719b822e44e61960ce396fce292545 new file mode 100644 index 0000000..508976d Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/aa/6e90a0c5719b822e44e61960ce396fce292545 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/ac/1e36aeef63891ee3d483ecec03129e4f4c23d7 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/ac/1e36aeef63891ee3d483ecec03129e4f4c23d7 new file mode 100644 index 0000000..9149387 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/ac/1e36aeef63891ee3d483ecec03129e4f4c23d7 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/ac/8e5bbec160db72bad9ff027a14415a44f3a656 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/ac/8e5bbec160db72bad9ff027a14415a44f3a656 new file mode 100644 index 0000000..232803e Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/ac/8e5bbec160db72bad9ff027a14415a44f3a656 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/b0/e5bf1131725618b9628bc76bd97da1807aaa82 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/b0/e5bf1131725618b9628bc76bd97da1807aaa82 new file mode 100644 index 0000000..807d6d2 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/b0/e5bf1131725618b9628bc76bd97da1807aaa82 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/b7/9791f88347327790ea7bf954d05b58dfa92012 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/b7/9791f88347327790ea7bf954d05b58dfa92012 new file mode 100644 index 0000000..a14e7a4 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/b7/9791f88347327790ea7bf954d05b58dfa92012 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/bf/42000f11ddea6ec9750ebccd5f013a2dfd00db b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/bf/42000f11ddea6ec9750ebccd5f013a2dfd00db new file mode 100644 index 0000000..5b890c0 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/bf/42000f11ddea6ec9750ebccd5f013a2dfd00db differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/c0/5b2fd9a472a0ca429a24e94c57f5ceac7d2ba8 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/c0/5b2fd9a472a0ca429a24e94c57f5ceac7d2ba8 new file mode 100644 index 0000000..d3f304c Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/c0/5b2fd9a472a0ca429a24e94c57f5ceac7d2ba8 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/c4/020d4ae957051c9ca4cf966f7bccb444f92841 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/c4/020d4ae957051c9ca4cf966f7bccb444f92841 new file mode 100644 index 0000000..165b38d Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/c4/020d4ae957051c9ca4cf966f7bccb444f92841 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/c6/79592d358f7228cba52238360cf8a74ac09036 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/c6/79592d358f7228cba52238360cf8a74ac09036 new file mode 100644 index 0000000..e088b54 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/c6/79592d358f7228cba52238360cf8a74ac09036 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/cb/6b54a4b12ab12735d3bd89d7351df390413123 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/cb/6b54a4b12ab12735d3bd89d7351df390413123 new file mode 100644 index 0000000..daab2e8 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/cb/6b54a4b12ab12735d3bd89d7351df390413123 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/d4/b628d16e234332656c56a897b9692d0714d237 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/d4/b628d16e234332656c56a897b9692d0714d237 new file mode 100644 index 0000000..73f5cf6 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/d4/b628d16e234332656c56a897b9692d0714d237 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/dd/cbb310f356d18f7197b3db1bccdbcf1aaab01e b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/dd/cbb310f356d18f7197b3db1bccdbcf1aaab01e new file mode 100644 index 0000000..fe6fb1d Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/dd/cbb310f356d18f7197b3db1bccdbcf1aaab01e differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/df/666703790e2785bdf185356b3ebaffc38a21d5 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/df/666703790e2785bdf185356b3ebaffc38a21d5 new file mode 100644 index 0000000..0931e8f Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/df/666703790e2785bdf185356b3ebaffc38a21d5 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e2/2fb62cdbc025ddd969332f8af231dd36769ca3 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e2/2fb62cdbc025ddd969332f8af231dd36769ca3 new file mode 100644 index 0000000..17af4fc Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e2/2fb62cdbc025ddd969332f8af231dd36769ca3 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e2/991a84fdee54540c09124509ac846f938d6851 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e2/991a84fdee54540c09124509ac846f938d6851 new file mode 100644 index 0000000..03cf5a3 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e2/991a84fdee54540c09124509ac846f938d6851 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e2/bd9007191c91cf67f767900933ea5818b22bc7 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e2/bd9007191c91cf67f767900933ea5818b22bc7 new file mode 100644 index 0000000..7f59fda Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e2/bd9007191c91cf67f767900933ea5818b22bc7 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e6/6a131d089e1be38590d76743f1dc73392cadaf b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e6/6a131d089e1be38590d76743f1dc73392cadaf new file mode 100644 index 0000000..eb8a2cc Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e6/6a131d089e1be38590d76743f1dc73392cadaf differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e6/fe1bb15f4b362a0dc6af3961b944c55511f723 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e6/fe1bb15f4b362a0dc6af3961b944c55511f723 new file mode 100644 index 0000000..45dd10d Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e6/fe1bb15f4b362a0dc6af3961b944c55511f723 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e8/79c1f64f8f95ce6d5166d095fdc65050e4bd04 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e8/79c1f64f8f95ce6d5166d095fdc65050e4bd04 new file mode 100644 index 0000000..e5eed99 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e8/79c1f64f8f95ce6d5166d095fdc65050e4bd04 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e9/48c3ffdb091c4d9021b76d05cb74e70b03654d b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e9/48c3ffdb091c4d9021b76d05cb74e70b03654d new file mode 100644 index 0000000..1e5b49b Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/e9/48c3ffdb091c4d9021b76d05cb74e70b03654d differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/eb/aca4bba0159f71a423c9af1b4e7b68ea0c2d58 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/eb/aca4bba0159f71a423c9af1b4e7b68ea0c2d58 new file mode 100644 index 0000000..55c2887 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/eb/aca4bba0159f71a423c9af1b4e7b68ea0c2d58 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/ed/460b43484ff34237dc8b058723ec7fa416ca40 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/ed/460b43484ff34237dc8b058723ec7fa416ca40 new file mode 100644 index 0000000..e9f845f Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/ed/460b43484ff34237dc8b058723ec7fa416ca40 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/ef/44d0bb4c4aa69d21a1dcd44647cf83c965902d b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/ef/44d0bb4c4aa69d21a1dcd44647cf83c965902d new file mode 100644 index 0000000..29f0128 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/ef/44d0bb4c4aa69d21a1dcd44647cf83c965902d differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/f3/6828f3fd76fa6c79f80cb495829cf967bcf20c b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/f3/6828f3fd76fa6c79f80cb495829cf967bcf20c new file mode 100644 index 0000000..507a641 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/f3/6828f3fd76fa6c79f80cb495829cf967bcf20c differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/f7/79b76abb56172bed7f1d05eacc51f5e35a77c9 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/f7/79b76abb56172bed7f1d05eacc51f5e35a77c9 new file mode 100644 index 0000000..1130b81 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/f7/79b76abb56172bed7f1d05eacc51f5e35a77c9 differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/fb/66cf5c5b61303743a5219d9c9c3d4d5845cdba b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/fb/66cf5c5b61303743a5219d9c9c3d4d5845cdba new file mode 100644 index 0000000..fdbfcfe Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/fb/66cf5c5b61303743a5219d9c9c3d4d5845cdba differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/fc/951766a0b63cbbb1e7010f21910c13458d326a b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/fc/951766a0b63cbbb1e7010f21910c13458d326a new file mode 100644 index 0000000..4130625 Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/fc/951766a0b63cbbb1e7010f21910c13458d326a differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/pack/pack-a61500800a78b3b9d6dfaf342231bcf6b913c405.idx b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/pack/pack-a61500800a78b3b9d6dfaf342231bcf6b913c405.idx new file mode 100644 index 0000000..8985cef Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/pack/pack-a61500800a78b3b9d6dfaf342231bcf6b913c405.idx differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/pack/pack-a61500800a78b3b9d6dfaf342231bcf6b913c405.pack b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/pack/pack-a61500800a78b3b9d6dfaf342231bcf6b913c405.pack new file mode 100644 index 0000000..df7992a Binary files /dev/null and b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/objects/pack/pack-a61500800a78b3b9d6dfaf342231bcf6b913c405.pack differ diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/packed-refs b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/packed-refs new file mode 100644 index 0000000..250f187 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/packed-refs @@ -0,0 +1 @@ +# pack-refs with: peeled fully-peeled sorted diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/arnold b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/arnold new file mode 100644 index 0000000..12b775c --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/arnold @@ -0,0 +1 @@ +153bedd63a4783ff668dd696d6e1c5be4134b9ba diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/barrel_shift b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/barrel_shift new file mode 100644 index 0000000..3ae0229 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/barrel_shift @@ -0,0 +1 @@ +340c8699c3da4e42f8ae56465187db19683de880 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/bvt_arb_tree-tbenz b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/bvt_arb_tree-tbenz new file mode 100644 index 0000000..cd6564b --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/bvt_arb_tree-tbenz @@ -0,0 +1 @@ +dcf84ce10999dc94f1e9815348027f6ead8456cf diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/carfield b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/carfield new file mode 100644 index 0000000..2807b71 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/carfield @@ -0,0 +1 @@ +e2486afcca71b685188f4fc8998b2f08f41bd961 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/ci-run/verilator_asserts b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/ci-run/verilator_asserts new file mode 100644 index 0000000..78ed500 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/ci-run/verilator_asserts @@ -0,0 +1 @@ +292bd92614f14e8dfb42c39e52a00cebcc77922f diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/ci/skip-gitlab-ext b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/ci/skip-gitlab-ext new file mode 100644 index 0000000..0473d86 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/ci/skip-gitlab-ext @@ -0,0 +1 @@ +43364b6a1078a75825965a6a66581efb25de64a1 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/control-pulp b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/control-pulp new file mode 100644 index 0000000..c6c67bc --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/control-pulp @@ -0,0 +1 @@ +0a9dc988745b64e12f929a1dd9bc44d8068a2bc3 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/fix-ci b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/fix-ci new file mode 100644 index 0000000..c8c939b --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/fix-ci @@ -0,0 +1 @@ +ac52f10b814f57ef5853bce43cf5d65e6fd1b447 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/fix-clk-div b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/fix-clk-div new file mode 100644 index 0000000..65c2f68 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/fix-clk-div @@ -0,0 +1 @@ +8207f1ddccdf7ad217a63646eeb10eee528d6a30 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/fix-compile-order b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/fix-compile-order new file mode 100644 index 0000000..605249f --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/fix-compile-order @@ -0,0 +1 @@ +07c84b1a2c0ef667737424e1f17dd4d278693b31 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/fix-ipapprox-includes b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/fix-ipapprox-includes new file mode 100644 index 0000000..88392ec --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/fix-ipapprox-includes @@ -0,0 +1 @@ +eb425a5c76f3c2ae0c1b20f97e6c0d8fd28a1eef diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/fix-style b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/fix-style new file mode 100644 index 0000000..c8c939b --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/fix-style @@ -0,0 +1 @@ +ac52f10b814f57ef5853bce43cf5d65e6fd1b447 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/fix/unread-xilinx b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/fix/unread-xilinx new file mode 100644 index 0000000..9200163 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/fix/unread-xilinx @@ -0,0 +1 @@ +9be5ed7655b2b35974847fcfd079c98f3c2e397d diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/flaviens-master b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/flaviens-master new file mode 100644 index 0000000..c122fd8 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/flaviens-master @@ -0,0 +1 @@ +2c094d546372ad31a5a5d77586516fe4d49edb57 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/icg-shift-reg b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/icg-shift-reg new file mode 100644 index 0000000..452cfab --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/icg-shift-reg @@ -0,0 +1 @@ +86cc827e136a3c426b1ff3a2b693ac66c58db1df diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/id_queue-exists_data b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/id_queue-exists_data new file mode 100644 index 0000000..7081e57 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/id_queue-exists_data @@ -0,0 +1 @@ +5a7cab001f1f5e15d2e847c6c5f787102f8b91a7 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/lleone/pwr-mbank-mem b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/lleone/pwr-mbank-mem new file mode 100644 index 0000000..7dad990 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/lleone/pwr-mbank-mem @@ -0,0 +1 @@ +aee15a31c84de6923652e7cd94830f40375a4070 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/master b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/master new file mode 100644 index 0000000..9f7db4c --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/master @@ -0,0 +1 @@ +f36828f3fd76fa6c79f80cb495829cf967bcf20c diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/max_pow_two-tbenz b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/max_pow_two-tbenz new file mode 100644 index 0000000..8de5625 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/max_pow_two-tbenz @@ -0,0 +1 @@ +7de94d7666802543a4b81e7659027ec1bca86542 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/michaero/mem_to_banks_passthrough b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/michaero/mem_to_banks_passthrough new file mode 100644 index 0000000..2506474 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/michaero/mem_to_banks_passthrough @@ -0,0 +1 @@ +c439813c28dda0d6b74e9b72539c546c9c15c5ae diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/multicast-xbar b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/multicast-xbar new file mode 100644 index 0000000..85e4c73 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/multicast-xbar @@ -0,0 +1 @@ +0fd2ba32926c0360534dc3d5795143cb259abb1c diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/nw/rstsync b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/nw/rstsync new file mode 100644 index 0000000..ce68e38 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/nw/rstsync @@ -0,0 +1 @@ +17f9145119ecfb02126cf8486db1d566a669b8a7 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/pulp-soc b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/pulp-soc new file mode 100644 index 0000000..aa9d07c --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/pulp-soc @@ -0,0 +1 @@ +0b8c10c21c9f810509bbd7bf86cfbdc4e6626c8e diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/remove-ffnr b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/remove-ffnr new file mode 100644 index 0000000..2b19bee --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/remove-ffnr @@ -0,0 +1 @@ +842753eabe166818bde831908c865872d115528d diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/rr_distributor b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/rr_distributor new file mode 100644 index 0000000..7fcc1ea --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/rr_distributor @@ -0,0 +1 @@ +3e433be23a022467a33bebc6c8ef7a6effb5b93e diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/scheremo/vlt b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/scheremo/vlt new file mode 100644 index 0000000..4ca28af --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/scheremo/vlt @@ -0,0 +1 @@ +7522cba64336f130a538b6f869618960210bcd98 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/sync_t b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/sync_t new file mode 100644 index 0000000..d66da1c --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/sync_t @@ -0,0 +1 @@ +944538538befdbd26698800bfd24f808373e82b7 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/update-deps b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/update-deps new file mode 100644 index 0000000..4f56883 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/update-deps @@ -0,0 +1 @@ +78ca0981f2814848d4a3263d6ee8c56ecbe725f9 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/v2.0.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/v2.0.0 new file mode 100644 index 0000000..666af68 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/v2.0.0 @@ -0,0 +1 @@ +98ca464b2c1ee1707abcc0c89710e405a35bc695 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/vega b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/vega new file mode 100644 index 0000000..052e9e9 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/vega @@ -0,0 +1 @@ +5e5c3dc11a9f6b4f0a5ebd0c87a2981bd06ff9fb diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/vivosoc4_TO b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/vivosoc4_TO new file mode 100644 index 0000000..7066ba9 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/vivosoc4_TO @@ -0,0 +1 @@ +d71f337d85ce2dc6c045b93bc3ea1c64e1cbfffa diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/yt/carfield b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/yt/carfield new file mode 100644 index 0000000..3af7f3c --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/remotes/origin/yt/carfield @@ -0,0 +1 @@ +8d72ec6eb84445ac4cf2e1cfd4273d85e1b5eb40 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/1.14.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/1.14.0 new file mode 100644 index 0000000..5912760 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/1.14.0 @@ -0,0 +1 @@ +b86af02f630977efe570961444583cac03d8e2c2 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/bender-tmp-c27bce39ebb2e6bae52f60960814a2afca7bd4cb b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/bender-tmp-c27bce39ebb2e6bae52f60960814a2afca7bd4cb new file mode 100644 index 0000000..42406a3 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/bender-tmp-c27bce39ebb2e6bae52f60960814a2afca7bd4cb @@ -0,0 +1 @@ +c27bce39ebb2e6bae52f60960814a2afca7bd4cb diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/pulpissimo-v1.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/pulpissimo-v1.0 new file mode 100644 index 0000000..2e68d11 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/pulpissimo-v1.0 @@ -0,0 +1 @@ +5b7021208a3ff818a617b497c5b5564f412fe0a8 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v0.1.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v0.1.0 new file mode 100644 index 0000000..e3e0a5f --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v0.1.0 @@ -0,0 +1 @@ +3d424e6e40f9a868aef4edb20bb2af892fddef9e diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v0.1.1 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v0.1.1 new file mode 100644 index 0000000..4678c47 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v0.1.1 @@ -0,0 +1 @@ +a1be6bdf11b0e7140b789d1f11e1b325a9098b87 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.0.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.0.0 new file mode 100644 index 0000000..086f2fc --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.0.0 @@ -0,0 +1 @@ +c66d46151f789e0b6113628b3de7adc1db71fb6f diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.0.1 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.0.1 new file mode 100644 index 0000000..986c222 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.0.1 @@ -0,0 +1 @@ +e3163d004412ac8fe622a788fa212d53845cfb8b diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.1.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.1.0 new file mode 100644 index 0000000..99ed4e9 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.1.0 @@ -0,0 +1 @@ +e3910278d95debde97ddc9056e7052e7e17bf663 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.1.1 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.1.1 new file mode 100644 index 0000000..2515702 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.1.1 @@ -0,0 +1 @@ +f1091dc68757d2984b4a974747b0bd1c6f34415f diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.10.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.10.0 new file mode 100644 index 0000000..284e634 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.10.0 @@ -0,0 +1 @@ +4a8e5684ba8da9e3797ab76ebe5f92cd12b11470 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.11.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.11.0 new file mode 100644 index 0000000..8c976fe --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.11.0 @@ -0,0 +1 @@ +d55cba3e941c25e9716bf59877acfd3ec354f545 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.11.0-rc.1 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.11.0-rc.1 new file mode 100644 index 0000000..18757be --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.11.0-rc.1 @@ -0,0 +1 @@ +761c645a8d3be832030f503def55f5ea95b8a5bd diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.13.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.13.0 new file mode 100644 index 0000000..f60e0c1 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.13.0 @@ -0,0 +1 @@ +b6436016a1022d0069e7d4424ef5087798ee9e67 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.13.1 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.13.1 new file mode 100644 index 0000000..3819657 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.13.1 @@ -0,0 +1 @@ +790f2385c01c83022474eede55809666209216e3 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.13.2 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.13.2 new file mode 100644 index 0000000..4947a6c --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.13.2 @@ -0,0 +1 @@ +c679592d358f7228cba52238360cf8a74ac09036 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.14.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.14.0 new file mode 100644 index 0000000..5912760 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.14.0 @@ -0,0 +1 @@ +b86af02f630977efe570961444583cac03d8e2c2 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.15.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.15.0 new file mode 100644 index 0000000..36b7fc9 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.15.0 @@ -0,0 +1 @@ +6637d86a522236a15e940bd0699a8b64b576f5b1 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.16.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.16.0 new file mode 100644 index 0000000..009dd28 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.16.0 @@ -0,0 +1 @@ +d83d91d9f48ba2a8cb5a3c0f84df9161c26a5d8d diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.16.1 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.16.1 new file mode 100644 index 0000000..f10337b --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.16.1 @@ -0,0 +1 @@ +10fde7f3675fe45266d26b1fb8aa4724214f582c diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.16.2 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.16.2 new file mode 100644 index 0000000..3bf142f --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.16.2 @@ -0,0 +1 @@ +46b3907d9ac97861ab5dee27d177b76530fdd038 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.16.3 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.16.3 new file mode 100644 index 0000000..0547320 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.16.3 @@ -0,0 +1 @@ +bbc0bf4699eb2c6babafce5924d86810507189a2 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.16.4 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.16.4 new file mode 100644 index 0000000..7398e8d --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.16.4 @@ -0,0 +1 @@ +8377412a4594c39c618ae4099983bf1e86bf08c4 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.17.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.17.0 new file mode 100644 index 0000000..87301bf --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.17.0 @@ -0,0 +1 @@ +0f9b8f08c0ea56b4e1b07f435c6443a88dee286f diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.18.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.18.0 new file mode 100644 index 0000000..ec96aec --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.18.0 @@ -0,0 +1 @@ +e45cc82dc720655b0d345bd195bfa798514b6f3e diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.19.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.19.0 new file mode 100644 index 0000000..88392ec --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.19.0 @@ -0,0 +1 @@ +eb425a5c76f3c2ae0c1b20f97e6c0d8fd28a1eef diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.2.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.2.0 new file mode 100644 index 0000000..5878fac --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.2.0 @@ -0,0 +1 @@ +ab9dbf88f1c1081b50a72e4dcc3e84ba77fc7a90 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.2.1 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.2.1 new file mode 100644 index 0000000..58ebd1d --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.2.1 @@ -0,0 +1 @@ +2283d8d4c31d3fcd5fcf0f4db5b7e26dadc556e2 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.2.2 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.2.2 new file mode 100644 index 0000000..3ad0a51 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.2.2 @@ -0,0 +1 @@ +466043804d71760602ad653db4fe33e07fd47b5b diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.2.3 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.2.3 new file mode 100644 index 0000000..1ce8f00 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.2.3 @@ -0,0 +1 @@ +c310954c9272c3da5ae589a92c85b043b960a1fc diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.20.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.20.0 new file mode 100644 index 0000000..d08d714 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.20.0 @@ -0,0 +1 @@ +a06e4beb08b8c0a5ef2c85d9afcfe0d96be76f30 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.20.1 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.20.1 new file mode 100644 index 0000000..473061c --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.20.1 @@ -0,0 +1 @@ +61e4de81cb131687c6d0ea35ec101b448309415d diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.21.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.21.0 new file mode 100644 index 0000000..751c48a --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.21.0 @@ -0,0 +1 @@ +6aeee85d0a34fedc06c14f04fd6363c9f7b4eeea diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.22.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.22.0 new file mode 100644 index 0000000..136f9a4 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.22.0 @@ -0,0 +1 @@ +343949f818e56e1cec65fd5e1fa7b6dd38cd77bf diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.22.1 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.22.1 new file mode 100644 index 0000000..1733c33 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.22.1 @@ -0,0 +1 @@ +015917ff33e5f944e866814f72f2074fb0f4220f diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.23.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.23.0 new file mode 100644 index 0000000..52b2526 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.23.0 @@ -0,0 +1 @@ +dc555643226419b7a602f0aa39d449545ea4c1f2 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.24.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.24.0 new file mode 100644 index 0000000..57dfe2f --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.24.0 @@ -0,0 +1 @@ +6fa6f66b9f9a2d45d7a7bdc4c01e055a544ea636 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.24.1 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.24.1 new file mode 100644 index 0000000..555a946 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.24.1 @@ -0,0 +1 @@ +713acf6e78bd9ec001dba216ce4ac301a04a057f diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.25.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.25.0 new file mode 100644 index 0000000..56d1865 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.25.0 @@ -0,0 +1 @@ +a8e6c3d421588a7a89cf6d497519c16f47b4789e diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.26.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.26.0 new file mode 100644 index 0000000..0bb8e2d --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.26.0 @@ -0,0 +1 @@ +bbe5c8863f7e62051962e8cc6544e2c8abc31dd0 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.27.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.27.0 new file mode 100644 index 0000000..770074d --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.27.0 @@ -0,0 +1 @@ +02dc52b7e3d139cd8f0da162946e3858210e1f14 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.27.1 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.27.1 new file mode 100644 index 0000000..cf4c08b --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.27.1 @@ -0,0 +1 @@ +9c1a1bdbd1a0928340863cad90c6fc0503da43a7 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.28.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.28.0 new file mode 100644 index 0000000..7b57685 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.28.0 @@ -0,0 +1 @@ +4dc9413990622dcbf4b37a19f792834c800da5c7 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.29.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.29.0 new file mode 100644 index 0000000..c54debb --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.29.0 @@ -0,0 +1 @@ +4ac82b420e46fd0005513ca2283cb3c905e7599a diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.3.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.3.0 new file mode 100644 index 0000000..363927d --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.3.0 @@ -0,0 +1 @@ +c8deba266585c5824044b74b7fe25c2cd6acfe38 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.30.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.30.0 new file mode 100644 index 0000000..8d05ba7 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.30.0 @@ -0,0 +1 @@ +88942228c971898ee732091a689105c82c1b20bf diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.31.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.31.0 new file mode 100644 index 0000000..f39c216 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.31.0 @@ -0,0 +1 @@ +aed978efcef722859025085ae72e52c41ea45b32 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.31.1 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.31.1 new file mode 100644 index 0000000..8200937 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.31.1 @@ -0,0 +1 @@ +53b0b58af2db5bd3c850a7038fae170ed78326bb diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.32.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.32.0 new file mode 100644 index 0000000..d1f3ad4 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.32.0 @@ -0,0 +1 @@ +2bd027cb87eaa9bf7d17196ec5f69864b35b630f diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.33.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.33.0 new file mode 100644 index 0000000..59ebce2 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.33.0 @@ -0,0 +1 @@ +13f28aa0021fc22c0d01a12d618fda58d2c93239 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.33.1 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.33.1 new file mode 100644 index 0000000..82a9402 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.33.1 @@ -0,0 +1 @@ +ad22699793d98ef714f120c6268fe92d096a61e1 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.34.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.34.0 new file mode 100644 index 0000000..2fa7328 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.34.0 @@ -0,0 +1 @@ +7773d971b9d7bef7f5f6a2ef36ee1e4d02cefcd3 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.35.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.35.0 new file mode 100644 index 0000000..404d320 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.35.0 @@ -0,0 +1 @@ +0d67563b6b592549542544f1abc0f43e5d4ee8b4 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.36.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.36.0 new file mode 100644 index 0000000..27261ea --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.36.0 @@ -0,0 +1 @@ +be3866eb3ed5b8ac7bc9a9ec9f8ae86137cd0a45 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.37.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.37.0 new file mode 100644 index 0000000..42406a3 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.37.0 @@ -0,0 +1 @@ +c27bce39ebb2e6bae52f60960814a2afca7bd4cb diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.4.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.4.0 new file mode 100644 index 0000000..a0101cc --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.4.0 @@ -0,0 +1 @@ +7fdaaa140bf330574bc585dac23692120440a9e6 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.5.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.5.0 new file mode 100644 index 0000000..56fb4a3 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.5.0 @@ -0,0 +1 @@ +4a5025558770bd98c8b2df596b0eafc084ed19d9 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.5.1 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.5.1 new file mode 100644 index 0000000..de2bd8e --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.5.1 @@ -0,0 +1 @@ +53dd5c50a43adc4d84c5ba5731ccb867d8f5a188 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.5.2 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.5.2 new file mode 100644 index 0000000..c953f1a --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.5.2 @@ -0,0 +1 @@ +c87025ffa796b1e5b840c3f5516f905a62184f23 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.5.3 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.5.3 new file mode 100644 index 0000000..4f2aebf --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.5.3 @@ -0,0 +1 @@ +5e7e02f4874ee5be817acd446bcf51248ecaab94 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.5.4 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.5.4 new file mode 100644 index 0000000..35ea7ef --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.5.4 @@ -0,0 +1 @@ +3554f4c9688f25a09cc4e7f8f6d48b8c9d2ecdfd diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.6.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.6.0 new file mode 100644 index 0000000..3931aac --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.6.0 @@ -0,0 +1 @@ +30181d35baff0958b0e3b9605812d726a0b4bc51 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.0 new file mode 100644 index 0000000..83f5f67 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.0 @@ -0,0 +1 @@ +62e218d962f0c95a9d4ee645ffafea7307412388 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.1 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.1 new file mode 100644 index 0000000..b3dea75 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.1 @@ -0,0 +1 @@ +6f41c24cc8a5760f0416ea32fe4eb3a6ccfe1711 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.2 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.2 new file mode 100644 index 0000000..2a10106 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.2 @@ -0,0 +1 @@ +4583a4d6ec597e488cfe9daa9543cb250bc8b254 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.3 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.3 new file mode 100644 index 0000000..908b047 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.3 @@ -0,0 +1 @@ +4277217c9ae8b1228f801e5a67de9ecdce8d887f diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.4 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.4 new file mode 100644 index 0000000..ccf4703 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.4 @@ -0,0 +1 @@ +4ddb77914eed42f7980a45c16f58fd82dd8b2292 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.5 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.5 new file mode 100644 index 0000000..93092bc --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.5 @@ -0,0 +1 @@ +774b92518a95b983d8587a6fc583e01376629bb0 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.6 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.6 new file mode 100644 index 0000000..b401ae9 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.6 @@ -0,0 +1 @@ +2fa06364e3865325668fa32b35aa1de0213b8c24 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.7 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.7 new file mode 100644 index 0000000..9017edd --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.7.7 @@ -0,0 +1 @@ +21a060d2c2c75173312b82cc72db96a2c62e66c5 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.8.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.8.0 new file mode 100644 index 0000000..0db485e --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/v1.8.0 @@ -0,0 +1 @@ +ef352e68becc9e33c64f5b051ad05c3d86b4d598 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.0 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.0 new file mode 100644 index 0000000..3a7a7b3 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.0 @@ -0,0 +1 @@ +a7992b6e5316ee4fa3e5396e6d4c568ef595e7e1 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.1 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.1 new file mode 100644 index 0000000..a91149b --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.1 @@ -0,0 +1 @@ +c3921426d923c601e3289e59985eaca72dce03fe diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.2 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.2 new file mode 100644 index 0000000..5bb904b --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.2 @@ -0,0 +1 @@ +a8b2d5fe061f3aec1dbbb21f6afb1d5618204944 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.3 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.3 new file mode 100644 index 0000000..8bf3c2b --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.3 @@ -0,0 +1 @@ +19e75a32044792ac09e94e27487d482c3f9ea098 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.4 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.4 new file mode 100644 index 0000000..5d9e58b --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.4 @@ -0,0 +1 @@ +6f2fc268f2bfc6e9663299e2dce3e9c25075e174 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.5 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.5 new file mode 100644 index 0000000..55f037a --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.5 @@ -0,0 +1 @@ +e997b35eb7c02577e75f9286b1bd8b31dd84de33 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.6 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.6 new file mode 100644 index 0000000..9eef01c --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.6 @@ -0,0 +1 @@ +e526fb904c8d4e3c8e4f3094219c31aa48badf4d diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.7 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.7 new file mode 100644 index 0000000..2589508 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.7 @@ -0,0 +1 @@ +d589e3b4e93aae971cd6b393d0f5dc694a531b50 diff --git a/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.8 b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.8 new file mode 100644 index 0000000..832c833 --- /dev/null +++ b/.bender/git/db/common_cells-eaa64ecbd4dffd2b/refs/tags/vega_v1.10.8 @@ -0,0 +1 @@ +e822cb3185ebc02e0179f33e33788f22b517e5aa diff --git a/.bender/git/db/common_verification-d2866221945eeb82/FETCH_HEAD b/.bender/git/db/common_verification-d2866221945eeb82/FETCH_HEAD new file mode 100644 index 0000000..8bc225c --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/FETCH_HEAD @@ -0,0 +1,12 @@ +15fb795c6d4f08a8e3b4965a0b27591d126f8675 not-for-merge branch 'ati' of https://github.com/pulp-platform/common_verification +7cadddf44517d8a064d8e70c0c88017d1dc43ea5 not-for-merge branch 'ci' of https://github.com/pulp-platform/common_verification +8e96774180c607b179189f6ee105fedeb87829d7 not-for-merge branch 'fix-clk_rst_gen' of https://github.com/pulp-platform/common_verification +fa2630f61666f61d9d78451c4d8b4d1ea403944e not-for-merge branch 'master' of https://github.com/pulp-platform/common_verification +52e27bcf483534fc4f78770ef1024a6c2402a51f not-for-merge tag 'v0.1.0' of https://github.com/pulp-platform/common_verification +6ce8f2acf88907549d1deeb658e1c0431c56c6b9 not-for-merge tag 'v0.1.1' of https://github.com/pulp-platform/common_verification +32b624461f66ea01cb4da58844a9c9aec721f91a not-for-merge tag 'v0.1.2' of https://github.com/pulp-platform/common_verification +70351333c358c3bbf8ec34bee23250ee9fdb9e33 not-for-merge tag 'v0.2.0' of https://github.com/pulp-platform/common_verification +9ba56886a4505dbeda971807dfc19855cd69139e not-for-merge tag 'v0.2.1' of https://github.com/pulp-platform/common_verification +898b0e707650ecf9c0fe27e3ffaa47b580b0f8d0 not-for-merge tag 'v0.2.2' of https://github.com/pulp-platform/common_verification +7cd9ad4b8b16adcc345b37f165d5a2776606961d not-for-merge tag 'v0.2.3' of https://github.com/pulp-platform/common_verification +6cc66ed4dc2348210ea9bda1173a871fc6ff8811 not-for-merge tag 'v0.2.4' of https://github.com/pulp-platform/common_verification diff --git a/.bender/git/db/common_verification-d2866221945eeb82/HEAD b/.bender/git/db/common_verification-d2866221945eeb82/HEAD new file mode 100644 index 0000000..cb089cd --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/.bender/git/db/common_verification-d2866221945eeb82/config b/.bender/git/db/common_verification-d2866221945eeb82/config new file mode 100644 index 0000000..1f77fa7 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/config @@ -0,0 +1,7 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true +[remote "origin"] + url = https://github.com/pulp-platform/common_verification.git + fetch = +refs/heads/*:refs/remotes/origin/* diff --git a/.bender/git/db/common_verification-d2866221945eeb82/description b/.bender/git/db/common_verification-d2866221945eeb82/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/.bender/git/db/common_verification-d2866221945eeb82/hooks/applypatch-msg.sample b/.bender/git/db/common_verification-d2866221945eeb82/hooks/applypatch-msg.sample new file mode 100755 index 0000000..a5d7b84 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/.bender/git/db/common_verification-d2866221945eeb82/hooks/commit-msg.sample b/.bender/git/db/common_verification-d2866221945eeb82/hooks/commit-msg.sample new file mode 100755 index 0000000..b58d118 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/.bender/git/db/common_verification-d2866221945eeb82/hooks/fsmonitor-watchman.sample b/.bender/git/db/common_verification-d2866221945eeb82/hooks/fsmonitor-watchman.sample new file mode 100755 index 0000000..14ed0aa --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/hooks/fsmonitor-watchman.sample @@ -0,0 +1,173 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use IPC::Open2; + +# An example hook script to integrate Watchman +# (https://facebook.github.io/watchman/) with git to speed up detecting +# new and modified files. +# +# The hook is passed a version (currently 2) and last update token +# formatted as a string and outputs to stdout a new update token and +# all files that have been modified since the update token. Paths must +# be relative to the root of the working tree and separated by a single NUL. +# +# To enable this hook, rename this file to "query-watchman" and set +# 'git config core.fsmonitor .git/hooks/query-watchman' +# +my ($version, $last_update_token) = @ARGV; + +# Uncomment for debugging +# print STDERR "$0 $version $last_update_token\n"; + +# Check the hook interface version +if ($version ne 2) { + die "Unsupported query-fsmonitor hook version '$version'.\n" . + "Falling back to scanning...\n"; +} + +my $git_work_tree = get_working_dir(); + +my $retry = 1; + +my $json_pkg; +eval { + require JSON::XS; + $json_pkg = "JSON::XS"; + 1; +} or do { + require JSON::PP; + $json_pkg = "JSON::PP"; +}; + +launch_watchman(); + +sub launch_watchman { + my $o = watchman_query(); + if (is_work_tree_watched($o)) { + output_result($o->{clock}, @{$o->{files}}); + } +} + +sub output_result { + my ($clockid, @files) = @_; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # binmode $fh, ":utf8"; + # print $fh "$clockid\n@files\n"; + # close $fh; + + binmode STDOUT, ":utf8"; + print $clockid; + print "\0"; + local $, = "\0"; + print @files; +} + +sub watchman_clock { + my $response = qx/watchman clock "$git_work_tree"/; + die "Failed to get clock id on '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + + return $json_pkg->new->utf8->decode($response); +} + +sub watchman_query { + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') + or die "open2() failed: $!\n" . + "Falling back to scanning...\n"; + + # In the query expression below we're asking for names of files that + # changed since $last_update_token but not from the .git folder. + # + # To accomplish this, we're using the "since" generator to use the + # recency index to select candidate nodes and "fields" to limit the + # output to file names only. Then we're using the "expression" term to + # further constrain the results. + if (substr($last_update_token, 0, 1) eq "c") { + $last_update_token = "\"$last_update_token\""; + } + my $query = <<" END"; + ["query", "$git_work_tree", { + "since": $last_update_token, + "fields": ["name"], + "expression": ["not", ["dirname", ".git"]] + }] + END + + # Uncomment for debugging the watchman query + # open (my $fh, ">", ".git/watchman-query.json"); + # print $fh $query; + # close $fh; + + print CHLD_IN $query; + close CHLD_IN; + my $response = do {local $/; }; + + # Uncomment for debugging the watch response + # open ($fh, ">", ".git/watchman-response.json"); + # print $fh $response; + # close $fh; + + die "Watchman: command returned no output.\n" . + "Falling back to scanning...\n" if $response eq ""; + die "Watchman: command returned invalid output: $response\n" . + "Falling back to scanning...\n" unless $response =~ /^\{/; + + return $json_pkg->new->utf8->decode($response); +} + +sub is_work_tree_watched { + my ($output) = @_; + my $error = $output->{error}; + if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { + $retry--; + my $response = qx/watchman watch "$git_work_tree"/; + die "Failed to make watchman watch '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + $output = $json_pkg->new->utf8->decode($response); + $error = $output->{error}; + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # close $fh; + + # Watchman will always return all files on the first query so + # return the fast "everything is dirty" flag to git and do the + # Watchman query just to get it over with now so we won't pay + # the cost in git to look up each individual file. + my $o = watchman_clock(); + $error = $output->{error}; + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + output_result($o->{clock}, ("/")); + $last_update_token = $o->{clock}; + + eval { launch_watchman() }; + return 0; + } + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + return 1; +} + +sub get_working_dir { + my $working_dir; + if ($^O =~ 'msys' || $^O =~ 'cygwin') { + $working_dir = Win32::GetCwd(); + $working_dir =~ tr/\\/\//; + } else { + require Cwd; + $working_dir = Cwd::cwd(); + } + + return $working_dir; +} diff --git a/.bender/git/db/common_verification-d2866221945eeb82/hooks/post-update.sample b/.bender/git/db/common_verification-d2866221945eeb82/hooks/post-update.sample new file mode 100755 index 0000000..ec17ec1 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/.bender/git/db/common_verification-d2866221945eeb82/hooks/pre-applypatch.sample b/.bender/git/db/common_verification-d2866221945eeb82/hooks/pre-applypatch.sample new file mode 100755 index 0000000..4142082 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/.bender/git/db/common_verification-d2866221945eeb82/hooks/pre-commit.sample b/.bender/git/db/common_verification-d2866221945eeb82/hooks/pre-commit.sample new file mode 100755 index 0000000..e144712 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --type=bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/.bender/git/db/common_verification-d2866221945eeb82/hooks/pre-merge-commit.sample b/.bender/git/db/common_verification-d2866221945eeb82/hooks/pre-merge-commit.sample new file mode 100755 index 0000000..399eab1 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/hooks/pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/.bender/git/db/common_verification-d2866221945eeb82/hooks/pre-push.sample b/.bender/git/db/common_verification-d2866221945eeb82/hooks/pre-push.sample new file mode 100755 index 0000000..4ce688d --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/.bender/git/db/common_verification-d2866221945eeb82/hooks/pre-rebase.sample b/.bender/git/db/common_verification-d2866221945eeb82/hooks/pre-rebase.sample new file mode 100755 index 0000000..6cbef5c --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/.bender/git/db/common_verification-d2866221945eeb82/hooks/pre-receive.sample b/.bender/git/db/common_verification-d2866221945eeb82/hooks/pre-receive.sample new file mode 100755 index 0000000..a1fd29e --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/.bender/git/db/common_verification-d2866221945eeb82/hooks/prepare-commit-msg.sample b/.bender/git/db/common_verification-d2866221945eeb82/hooks/prepare-commit-msg.sample new file mode 100755 index 0000000..10fa14c --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/.bender/git/db/common_verification-d2866221945eeb82/hooks/push-to-checkout.sample b/.bender/git/db/common_verification-d2866221945eeb82/hooks/push-to-checkout.sample new file mode 100755 index 0000000..af5a0c0 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/hooks/push-to-checkout.sample @@ -0,0 +1,78 @@ +#!/bin/sh + +# An example hook script to update a checked-out tree on a git push. +# +# This hook is invoked by git-receive-pack(1) when it reacts to git +# push and updates reference(s) in its repository, and when the push +# tries to update the branch that is currently checked out and the +# receive.denyCurrentBranch configuration variable is set to +# updateInstead. +# +# By default, such a push is refused if the working tree and the index +# of the remote repository has any difference from the currently +# checked out commit; when both the working tree and the index match +# the current commit, they are updated to match the newly pushed tip +# of the branch. This hook is to be used to override the default +# behaviour; however the code below reimplements the default behaviour +# as a starting point for convenient modification. +# +# The hook receives the commit with which the tip of the current +# branch is going to be updated: +commit=$1 + +# It can exit with a non-zero status to refuse the push (when it does +# so, it must not modify the index or the working tree). +die () { + echo >&2 "$*" + exit 1 +} + +# Or it can make any necessary changes to the working tree and to the +# index to bring them to the desired state when the tip of the current +# branch is updated to the new commit, and exit with a zero status. +# +# For example, the hook can simply run git read-tree -u -m HEAD "$1" +# in order to emulate git fetch that is run in the reverse direction +# with git push, as the two-tree form of git read-tree -u -m is +# essentially the same as git switch or git checkout that switches +# branches while keeping the local changes in the working tree that do +# not interfere with the difference between the branches. + +# The below is a more-or-less exact translation to shell of the C code +# for the default behaviour for git's push-to-checkout hook defined in +# the push_to_deploy() function in builtin/receive-pack.c. +# +# Note that the hook will be executed from the repository directory, +# not from the working tree, so if you want to perform operations on +# the working tree, you will have to adapt your code accordingly, e.g. +# by adding "cd .." or using relative paths. + +if ! git update-index -q --ignore-submodules --refresh +then + die "Up-to-date check failed" +fi + +if ! git diff-files --quiet --ignore-submodules -- +then + die "Working directory has unstaged changes" +fi + +# This is a rough translation of: +# +# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX +if git cat-file -e HEAD 2>/dev/null +then + head=HEAD +else + head=$(git hash-object -t tree --stdin &2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero=$(git hash-object --stdin &2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/.bender/git/db/common_verification-d2866221945eeb82/info/exclude b/.bender/git/db/common_verification-d2866221945eeb82/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/.bender/git/db/common_verification-d2866221945eeb82/objects/10/00a9199ff374bfa50bcf374339d25304956301 b/.bender/git/db/common_verification-d2866221945eeb82/objects/10/00a9199ff374bfa50bcf374339d25304956301 new file mode 100644 index 0000000..4b83568 Binary files /dev/null and b/.bender/git/db/common_verification-d2866221945eeb82/objects/10/00a9199ff374bfa50bcf374339d25304956301 differ diff --git a/.bender/git/db/common_verification-d2866221945eeb82/objects/6c/c66ed4dc2348210ea9bda1173a871fc6ff8811 b/.bender/git/db/common_verification-d2866221945eeb82/objects/6c/c66ed4dc2348210ea9bda1173a871fc6ff8811 new file mode 100644 index 0000000..6636a7f Binary files /dev/null and b/.bender/git/db/common_verification-d2866221945eeb82/objects/6c/c66ed4dc2348210ea9bda1173a871fc6ff8811 differ diff --git a/.bender/git/db/common_verification-d2866221945eeb82/objects/7c/a19372342f15b8937115f82013e889821a8be4 b/.bender/git/db/common_verification-d2866221945eeb82/objects/7c/a19372342f15b8937115f82013e889821a8be4 new file mode 100644 index 0000000..ef5d3d4 Binary files /dev/null and b/.bender/git/db/common_verification-d2866221945eeb82/objects/7c/a19372342f15b8937115f82013e889821a8be4 differ diff --git a/.bender/git/db/common_verification-d2866221945eeb82/objects/83/5d05484647ba1dd141db29b8e962d768123010 b/.bender/git/db/common_verification-d2866221945eeb82/objects/83/5d05484647ba1dd141db29b8e962d768123010 new file mode 100644 index 0000000..9496349 Binary files /dev/null and b/.bender/git/db/common_verification-d2866221945eeb82/objects/83/5d05484647ba1dd141db29b8e962d768123010 differ diff --git a/.bender/git/db/common_verification-d2866221945eeb82/objects/b8/6091bcbb65aff42550093b421007c4a3bd6df5 b/.bender/git/db/common_verification-d2866221945eeb82/objects/b8/6091bcbb65aff42550093b421007c4a3bd6df5 new file mode 100644 index 0000000..00724e2 Binary files /dev/null and b/.bender/git/db/common_verification-d2866221945eeb82/objects/b8/6091bcbb65aff42550093b421007c4a3bd6df5 differ diff --git a/.bender/git/db/common_verification-d2866221945eeb82/objects/cd/58b6b431e2d6e2738160c3801016d8484f7b3a b/.bender/git/db/common_verification-d2866221945eeb82/objects/cd/58b6b431e2d6e2738160c3801016d8484f7b3a new file mode 100644 index 0000000..9ab5cbf Binary files /dev/null and b/.bender/git/db/common_verification-d2866221945eeb82/objects/cd/58b6b431e2d6e2738160c3801016d8484f7b3a differ diff --git a/.bender/git/db/common_verification-d2866221945eeb82/objects/d1/85edfbd178493626b1fec919212e8b55b85b22 b/.bender/git/db/common_verification-d2866221945eeb82/objects/d1/85edfbd178493626b1fec919212e8b55b85b22 new file mode 100644 index 0000000..a7280cb --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/objects/d1/85edfbd178493626b1fec919212e8b55b85b22 @@ -0,0 +1,2 @@ +xmÎÍJÅ0`×}ŠÙ e’´ù‹¨O è LÒ‰ ´·%îÓïÚÕ¾ÃIû¶Umíƒ4fÀ9?é LA/jÉ1d¥Ðš90rä9»h‡ƒ_BB—ÉÛîLÔ‰(.!ÎÖ+×+ôœ)á½ó}IÙ¼•ºÖã`xïnp9ÊyOϵž#óÈRnc*O œVÚh‡ +Q#é>õ}”}£^ùzƒ‹Ä~þÑÆtÞØ®U×Ã˲À7·º’ôBí“~ªèÅI+C®+ŸÃ/m[V \ No newline at end of file diff --git a/.bender/git/db/common_verification-d2866221945eeb82/objects/db/801ce93ce241831a2deea02e07e53f7143b534 b/.bender/git/db/common_verification-d2866221945eeb82/objects/db/801ce93ce241831a2deea02e07e53f7143b534 new file mode 100644 index 0000000..3f399a3 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/objects/db/801ce93ce241831a2deea02e07e53f7143b534 @@ -0,0 +1 @@ +x5ޱjÄ0DSû+¶1Þ•m­à8.éS%¤ )$y'ËHºþú˜#WÍ ÌƧCbzªY´·h”&ÕÓŒƒãÃ#3S‡J˜ ZvÒ7›Í²V˜™f7¡æÞ¨‘F‡³xƒ†„Ýpl ލ±·º¤ ï)‡ºÃ‡_$K†S¼çKL)KS±Á¿”ä[¿œµ"b­‚ç»®ñ÷³õà>—m7Yw8UwÈ%„ÒŠ´R—ýA+ÕiéŸn¾¿$‡«­)ÿÀë4¿ÚR &ÈvR »À|\ü}´ Ü¶-åÚü6[p \ No newline at end of file diff --git a/.bender/git/db/common_verification-d2866221945eeb82/objects/fa/2630f61666f61d9d78451c4d8b4d1ea403944e b/.bender/git/db/common_verification-d2866221945eeb82/objects/fa/2630f61666f61d9d78451c4d8b4d1ea403944e new file mode 100644 index 0000000..ff116e0 Binary files /dev/null and b/.bender/git/db/common_verification-d2866221945eeb82/objects/fa/2630f61666f61d9d78451c4d8b4d1ea403944e differ diff --git a/.bender/git/db/common_verification-d2866221945eeb82/objects/pack/pack-04e04fbf173d4149d3afb436e35200c1fc83476f.idx b/.bender/git/db/common_verification-d2866221945eeb82/objects/pack/pack-04e04fbf173d4149d3afb436e35200c1fc83476f.idx new file mode 100644 index 0000000..0170009 Binary files /dev/null and b/.bender/git/db/common_verification-d2866221945eeb82/objects/pack/pack-04e04fbf173d4149d3afb436e35200c1fc83476f.idx differ diff --git a/.bender/git/db/common_verification-d2866221945eeb82/objects/pack/pack-04e04fbf173d4149d3afb436e35200c1fc83476f.pack b/.bender/git/db/common_verification-d2866221945eeb82/objects/pack/pack-04e04fbf173d4149d3afb436e35200c1fc83476f.pack new file mode 100644 index 0000000..6d07202 Binary files /dev/null and b/.bender/git/db/common_verification-d2866221945eeb82/objects/pack/pack-04e04fbf173d4149d3afb436e35200c1fc83476f.pack differ diff --git a/.bender/git/db/common_verification-d2866221945eeb82/packed-refs b/.bender/git/db/common_verification-d2866221945eeb82/packed-refs new file mode 100644 index 0000000..250f187 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/packed-refs @@ -0,0 +1 @@ +# pack-refs with: peeled fully-peeled sorted diff --git a/.bender/git/db/common_verification-d2866221945eeb82/refs/remotes/origin/ati b/.bender/git/db/common_verification-d2866221945eeb82/refs/remotes/origin/ati new file mode 100644 index 0000000..f657bd1 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/refs/remotes/origin/ati @@ -0,0 +1 @@ +15fb795c6d4f08a8e3b4965a0b27591d126f8675 diff --git a/.bender/git/db/common_verification-d2866221945eeb82/refs/remotes/origin/ci b/.bender/git/db/common_verification-d2866221945eeb82/refs/remotes/origin/ci new file mode 100644 index 0000000..5ba7e0b --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/refs/remotes/origin/ci @@ -0,0 +1 @@ +7cadddf44517d8a064d8e70c0c88017d1dc43ea5 diff --git a/.bender/git/db/common_verification-d2866221945eeb82/refs/remotes/origin/fix-clk_rst_gen b/.bender/git/db/common_verification-d2866221945eeb82/refs/remotes/origin/fix-clk_rst_gen new file mode 100644 index 0000000..671ab89 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/refs/remotes/origin/fix-clk_rst_gen @@ -0,0 +1 @@ +8e96774180c607b179189f6ee105fedeb87829d7 diff --git a/.bender/git/db/common_verification-d2866221945eeb82/refs/remotes/origin/master b/.bender/git/db/common_verification-d2866221945eeb82/refs/remotes/origin/master new file mode 100644 index 0000000..54fc236 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/refs/remotes/origin/master @@ -0,0 +1 @@ +fa2630f61666f61d9d78451c4d8b4d1ea403944e diff --git a/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/bender-tmp-9c07fa860593b2caabd9b5681740c25fac04b878 b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/bender-tmp-9c07fa860593b2caabd9b5681740c25fac04b878 new file mode 100644 index 0000000..69d99a1 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/bender-tmp-9c07fa860593b2caabd9b5681740c25fac04b878 @@ -0,0 +1 @@ +9c07fa860593b2caabd9b5681740c25fac04b878 diff --git a/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/bender-tmp-fa2630f61666f61d9d78451c4d8b4d1ea403944e b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/bender-tmp-fa2630f61666f61d9d78451c4d8b4d1ea403944e new file mode 100644 index 0000000..54fc236 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/bender-tmp-fa2630f61666f61d9d78451c4d8b4d1ea403944e @@ -0,0 +1 @@ +fa2630f61666f61d9d78451c4d8b4d1ea403944e diff --git a/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.1.0 b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.1.0 new file mode 100644 index 0000000..c904f0e --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.1.0 @@ -0,0 +1 @@ +52e27bcf483534fc4f78770ef1024a6c2402a51f diff --git a/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.1.1 b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.1.1 new file mode 100644 index 0000000..54a51cc --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.1.1 @@ -0,0 +1 @@ +6ce8f2acf88907549d1deeb658e1c0431c56c6b9 diff --git a/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.1.2 b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.1.2 new file mode 100644 index 0000000..97f08d0 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.1.2 @@ -0,0 +1 @@ +32b624461f66ea01cb4da58844a9c9aec721f91a diff --git a/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.2.0 b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.2.0 new file mode 100644 index 0000000..1451cf0 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.2.0 @@ -0,0 +1 @@ +70351333c358c3bbf8ec34bee23250ee9fdb9e33 diff --git a/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.2.1 b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.2.1 new file mode 100644 index 0000000..62d8ad3 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.2.1 @@ -0,0 +1 @@ +9ba56886a4505dbeda971807dfc19855cd69139e diff --git a/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.2.2 b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.2.2 new file mode 100644 index 0000000..4dfd490 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.2.2 @@ -0,0 +1 @@ +898b0e707650ecf9c0fe27e3ffaa47b580b0f8d0 diff --git a/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.2.3 b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.2.3 new file mode 100644 index 0000000..77255b7 --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.2.3 @@ -0,0 +1 @@ +7cd9ad4b8b16adcc345b37f165d5a2776606961d diff --git a/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.2.4 b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.2.4 new file mode 100644 index 0000000..ca3c4df --- /dev/null +++ b/.bender/git/db/common_verification-d2866221945eeb82/refs/tags/v0.2.4 @@ -0,0 +1 @@ +6cc66ed4dc2348210ea9bda1173a871fc6ff8811 diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/FETCH_HEAD b/.bender/git/db/hci-7f5685ee2a0a3ff5/FETCH_HEAD new file mode 100644 index 0000000..d0299e0 --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/FETCH_HEAD @@ -0,0 +1 @@ +066c7ce7d24b61587e245decb592054669d7a2d1 not-for-merge branch 'master' of https://github.com/MastroDiego/hci diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/HEAD b/.bender/git/db/hci-7f5685ee2a0a3ff5/HEAD new file mode 100644 index 0000000..cb089cd --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/config b/.bender/git/db/hci-7f5685ee2a0a3ff5/config new file mode 100644 index 0000000..c377080 --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/config @@ -0,0 +1,7 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true +[remote "origin"] + url = https://github.com/MastroDiego/hci.git + fetch = +refs/heads/*:refs/remotes/origin/* diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/description b/.bender/git/db/hci-7f5685ee2a0a3ff5/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/applypatch-msg.sample b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/applypatch-msg.sample new file mode 100755 index 0000000..a5d7b84 --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/commit-msg.sample b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/commit-msg.sample new file mode 100755 index 0000000..b58d118 --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/fsmonitor-watchman.sample b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/fsmonitor-watchman.sample new file mode 100755 index 0000000..14ed0aa --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/fsmonitor-watchman.sample @@ -0,0 +1,173 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use IPC::Open2; + +# An example hook script to integrate Watchman +# (https://facebook.github.io/watchman/) with git to speed up detecting +# new and modified files. +# +# The hook is passed a version (currently 2) and last update token +# formatted as a string and outputs to stdout a new update token and +# all files that have been modified since the update token. Paths must +# be relative to the root of the working tree and separated by a single NUL. +# +# To enable this hook, rename this file to "query-watchman" and set +# 'git config core.fsmonitor .git/hooks/query-watchman' +# +my ($version, $last_update_token) = @ARGV; + +# Uncomment for debugging +# print STDERR "$0 $version $last_update_token\n"; + +# Check the hook interface version +if ($version ne 2) { + die "Unsupported query-fsmonitor hook version '$version'.\n" . + "Falling back to scanning...\n"; +} + +my $git_work_tree = get_working_dir(); + +my $retry = 1; + +my $json_pkg; +eval { + require JSON::XS; + $json_pkg = "JSON::XS"; + 1; +} or do { + require JSON::PP; + $json_pkg = "JSON::PP"; +}; + +launch_watchman(); + +sub launch_watchman { + my $o = watchman_query(); + if (is_work_tree_watched($o)) { + output_result($o->{clock}, @{$o->{files}}); + } +} + +sub output_result { + my ($clockid, @files) = @_; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # binmode $fh, ":utf8"; + # print $fh "$clockid\n@files\n"; + # close $fh; + + binmode STDOUT, ":utf8"; + print $clockid; + print "\0"; + local $, = "\0"; + print @files; +} + +sub watchman_clock { + my $response = qx/watchman clock "$git_work_tree"/; + die "Failed to get clock id on '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + + return $json_pkg->new->utf8->decode($response); +} + +sub watchman_query { + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') + or die "open2() failed: $!\n" . + "Falling back to scanning...\n"; + + # In the query expression below we're asking for names of files that + # changed since $last_update_token but not from the .git folder. + # + # To accomplish this, we're using the "since" generator to use the + # recency index to select candidate nodes and "fields" to limit the + # output to file names only. Then we're using the "expression" term to + # further constrain the results. + if (substr($last_update_token, 0, 1) eq "c") { + $last_update_token = "\"$last_update_token\""; + } + my $query = <<" END"; + ["query", "$git_work_tree", { + "since": $last_update_token, + "fields": ["name"], + "expression": ["not", ["dirname", ".git"]] + }] + END + + # Uncomment for debugging the watchman query + # open (my $fh, ">", ".git/watchman-query.json"); + # print $fh $query; + # close $fh; + + print CHLD_IN $query; + close CHLD_IN; + my $response = do {local $/; }; + + # Uncomment for debugging the watch response + # open ($fh, ">", ".git/watchman-response.json"); + # print $fh $response; + # close $fh; + + die "Watchman: command returned no output.\n" . + "Falling back to scanning...\n" if $response eq ""; + die "Watchman: command returned invalid output: $response\n" . + "Falling back to scanning...\n" unless $response =~ /^\{/; + + return $json_pkg->new->utf8->decode($response); +} + +sub is_work_tree_watched { + my ($output) = @_; + my $error = $output->{error}; + if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { + $retry--; + my $response = qx/watchman watch "$git_work_tree"/; + die "Failed to make watchman watch '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + $output = $json_pkg->new->utf8->decode($response); + $error = $output->{error}; + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # close $fh; + + # Watchman will always return all files on the first query so + # return the fast "everything is dirty" flag to git and do the + # Watchman query just to get it over with now so we won't pay + # the cost in git to look up each individual file. + my $o = watchman_clock(); + $error = $output->{error}; + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + output_result($o->{clock}, ("/")); + $last_update_token = $o->{clock}; + + eval { launch_watchman() }; + return 0; + } + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + return 1; +} + +sub get_working_dir { + my $working_dir; + if ($^O =~ 'msys' || $^O =~ 'cygwin') { + $working_dir = Win32::GetCwd(); + $working_dir =~ tr/\\/\//; + } else { + require Cwd; + $working_dir = Cwd::cwd(); + } + + return $working_dir; +} diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/post-update.sample b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/post-update.sample new file mode 100755 index 0000000..ec17ec1 --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/pre-applypatch.sample b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/pre-applypatch.sample new file mode 100755 index 0000000..4142082 --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/pre-commit.sample b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/pre-commit.sample new file mode 100755 index 0000000..e144712 --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --type=bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/pre-merge-commit.sample b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/pre-merge-commit.sample new file mode 100755 index 0000000..399eab1 --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/pre-push.sample b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/pre-push.sample new file mode 100755 index 0000000..4ce688d --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/pre-rebase.sample b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/pre-rebase.sample new file mode 100755 index 0000000..6cbef5c --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/pre-receive.sample b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/pre-receive.sample new file mode 100755 index 0000000..a1fd29e --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/prepare-commit-msg.sample b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/prepare-commit-msg.sample new file mode 100755 index 0000000..10fa14c --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/push-to-checkout.sample b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/push-to-checkout.sample new file mode 100755 index 0000000..af5a0c0 --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/hooks/push-to-checkout.sample @@ -0,0 +1,78 @@ +#!/bin/sh + +# An example hook script to update a checked-out tree on a git push. +# +# This hook is invoked by git-receive-pack(1) when it reacts to git +# push and updates reference(s) in its repository, and when the push +# tries to update the branch that is currently checked out and the +# receive.denyCurrentBranch configuration variable is set to +# updateInstead. +# +# By default, such a push is refused if the working tree and the index +# of the remote repository has any difference from the currently +# checked out commit; when both the working tree and the index match +# the current commit, they are updated to match the newly pushed tip +# of the branch. This hook is to be used to override the default +# behaviour; however the code below reimplements the default behaviour +# as a starting point for convenient modification. +# +# The hook receives the commit with which the tip of the current +# branch is going to be updated: +commit=$1 + +# It can exit with a non-zero status to refuse the push (when it does +# so, it must not modify the index or the working tree). +die () { + echo >&2 "$*" + exit 1 +} + +# Or it can make any necessary changes to the working tree and to the +# index to bring them to the desired state when the tip of the current +# branch is updated to the new commit, and exit with a zero status. +# +# For example, the hook can simply run git read-tree -u -m HEAD "$1" +# in order to emulate git fetch that is run in the reverse direction +# with git push, as the two-tree form of git read-tree -u -m is +# essentially the same as git switch or git checkout that switches +# branches while keeping the local changes in the working tree that do +# not interfere with the difference between the branches. + +# The below is a more-or-less exact translation to shell of the C code +# for the default behaviour for git's push-to-checkout hook defined in +# the push_to_deploy() function in builtin/receive-pack.c. +# +# Note that the hook will be executed from the repository directory, +# not from the working tree, so if you want to perform operations on +# the working tree, you will have to adapt your code accordingly, e.g. +# by adding "cd .." or using relative paths. + +if ! git update-index -q --ignore-submodules --refresh +then + die "Up-to-date check failed" +fi + +if ! git diff-files --quiet --ignore-submodules -- +then + die "Working directory has unstaged changes" +fi + +# This is a rough translation of: +# +# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX +if git cat-file -e HEAD 2>/dev/null +then + head=HEAD +else + head=$(git hash-object -t tree --stdin &2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero=$(git hash-object --stdin &2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/info/exclude b/.bender/git/db/hci-7f5685ee2a0a3ff5/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/objects/pack/pack-0d53a71a599568f2510c13497b9449e15dc7b9f5.idx b/.bender/git/db/hci-7f5685ee2a0a3ff5/objects/pack/pack-0d53a71a599568f2510c13497b9449e15dc7b9f5.idx new file mode 100644 index 0000000..2eae8ed Binary files /dev/null and b/.bender/git/db/hci-7f5685ee2a0a3ff5/objects/pack/pack-0d53a71a599568f2510c13497b9449e15dc7b9f5.idx differ diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/objects/pack/pack-0d53a71a599568f2510c13497b9449e15dc7b9f5.pack b/.bender/git/db/hci-7f5685ee2a0a3ff5/objects/pack/pack-0d53a71a599568f2510c13497b9449e15dc7b9f5.pack new file mode 100644 index 0000000..2d45746 Binary files /dev/null and b/.bender/git/db/hci-7f5685ee2a0a3ff5/objects/pack/pack-0d53a71a599568f2510c13497b9449e15dc7b9f5.pack differ diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/refs/remotes/origin/master b/.bender/git/db/hci-7f5685ee2a0a3ff5/refs/remotes/origin/master new file mode 100644 index 0000000..53814d1 --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/refs/remotes/origin/master @@ -0,0 +1 @@ +066c7ce7d24b61587e245decb592054669d7a2d1 diff --git a/.bender/git/db/hci-7f5685ee2a0a3ff5/refs/tags/bender-tmp-066c7ce7d24b61587e245decb592054669d7a2d1 b/.bender/git/db/hci-7f5685ee2a0a3ff5/refs/tags/bender-tmp-066c7ce7d24b61587e245decb592054669d7a2d1 new file mode 100644 index 0000000..53814d1 --- /dev/null +++ b/.bender/git/db/hci-7f5685ee2a0a3ff5/refs/tags/bender-tmp-066c7ce7d24b61587e245decb592054669d7a2d1 @@ -0,0 +1 @@ +066c7ce7d24b61587e245decb592054669d7a2d1 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/FETCH_HEAD b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/FETCH_HEAD new file mode 100644 index 0000000..5388ef5 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/FETCH_HEAD @@ -0,0 +1,38 @@ +bdf4921498cd46bb6074a85fb5124f8e7da764e9 not-for-merge branch 'archimedes' of https://github.com/pulp-platform/hwpe-ctrl +7b280799efaf3d00940cddfc69adb6844b4d797f not-for-merge branch 'commit-and-trigger' of https://github.com/pulp-platform/hwpe-ctrl +b350681985f9891c31a99d519b25af6014d8017b not-for-merge branch 'devel' of https://github.com/pulp-platform/hwpe-ctrl +01a68c2c757090a57747224cdac899468300265a not-for-merge branch 'ff-regfile' of https://github.com/pulp-platform/hwpe-ctrl +0d4e1d006678eb318d48f36382093ceb34fea99d not-for-merge branch 'fix_pacakge_imports' of https://github.com/pulp-platform/hwpe-ctrl +b3848fac03e6c4ef928d71a705ca1d93dc52ddd2 not-for-merge branch 'fix_timeunit_scope' of https://github.com/pulp-platform/hwpe-ctrl +1916c72f024175f1fe351acc3db3c6e9925a117d not-for-merge branch 'flags-uloop-ready' of https://github.com/pulp-platform/hwpe-ctrl +7ba707d837697c2c7c6ea1396ec4e4ab094054a2 not-for-merge branch 'master' of https://github.com/pulp-platform/hwpe-ctrl +1b1dfd04ae116badd18c1af4e59a74c5c4a61282 not-for-merge branch 'more_ops_per_loop' of https://github.com/pulp-platform/hwpe-ctrl +af1368257fd2b9b2359524b528c0315a56e5b737 not-for-merge branch 'rt/remove_localparam_override' of https://github.com/pulp-platform/hwpe-ctrl +9ce06b89968c4faa8cb7c6420118c6e0d7c42f1b not-for-merge branch 'snitch' of https://github.com/pulp-platform/hwpe-ctrl +36ce2c4256e621f67e0e15652a0e37859a32042f not-for-merge branch 'upstream' of https://github.com/pulp-platform/hwpe-ctrl +9be938eb4a8a11e542ecb61baff6b3977b8469ca not-for-merge branch 'uriscy_intf' of https://github.com/pulp-platform/hwpe-ctrl +e4e2cd594739b4be81595ae603d41cbd5b0449ec not-for-merge branch 'yt/reqrsp' of https://github.com/pulp-platform/hwpe-ctrl +0e95510c0f4d43452d21b7723d766ae92e45c101 not-for-merge branch 'yt/task-interfaces' of https://github.com/pulp-platform/hwpe-ctrl +21227f71b4b63b1fbf3c279afb7d8460402ee725 not-for-merge tag 'devel_vega_v1.0.0' of https://github.com/pulp-platform/hwpe-ctrl +71c93d83cf07ef1b7ed1875fd1ad6b4c57095bc0 not-for-merge tag 'ec068eb-bender' of https://github.com/pulp-platform/hwpe-ctrl +7e3dde7a1349fbb97fc043c9ea2e3fd3f7e670e9 not-for-merge tag 'hwce-v5.0' of https://github.com/pulp-platform/hwpe-ctrl +599e6e15e1eb4a00882acc5e768670550c853791 not-for-merge tag 'hwce-v5.1.1' of https://github.com/pulp-platform/hwpe-ctrl +718419701fa3e183108f951eaf56ad10e9c28fd0 not-for-merge tag 'v1.0' of https://github.com/pulp-platform/hwpe-ctrl +d4c7e56a1a06939152991cb689422c280171f456 not-for-merge tag 'v1.0.1' of https://github.com/pulp-platform/hwpe-ctrl +599e6e15e1eb4a00882acc5e768670550c853791 not-for-merge tag 'v1.0.2' of https://github.com/pulp-platform/hwpe-ctrl +8999cac8a0c990228e31048c891655ca8558cd03 not-for-merge tag 'v1.1' of https://github.com/pulp-platform/hwpe-ctrl +487e3188d63dc35ed6f3af2cd690f70988f56060 not-for-merge tag 'v1.1.1' of https://github.com/pulp-platform/hwpe-ctrl +7d1bc282803bc731092bf821379425e8779ee791 not-for-merge tag 'v1.1.2' of https://github.com/pulp-platform/hwpe-ctrl +36ce2c4256e621f67e0e15652a0e37859a32042f not-for-merge tag 'v1.1.3' of https://github.com/pulp-platform/hwpe-ctrl +9be938eb4a8a11e542ecb61baff6b3977b8469ca not-for-merge tag 'v1.2' of https://github.com/pulp-platform/hwpe-ctrl +416993b902aa3c59421ac976b5d1bb97d051afb0 not-for-merge tag 'v1.3' of https://github.com/pulp-platform/hwpe-ctrl +a780798f4af11a10b707d13c719a850ef888e04f not-for-merge tag 'v1.3.1' of https://github.com/pulp-platform/hwpe-ctrl +ee700d77a7c55e87fc88f6a6a58beb8cbcfc1c29 not-for-merge tag 'v1.4' of https://github.com/pulp-platform/hwpe-ctrl +1b1dfd04ae116badd18c1af4e59a74c5c4a61282 not-for-merge tag 'v1.5' of https://github.com/pulp-platform/hwpe-ctrl +e088f7969dcdf9d234b606952b357da1ad4cebb1 not-for-merge tag 'v1.6' of https://github.com/pulp-platform/hwpe-ctrl +9323a2a0d304359aad54ac7661b72e8268cfb855 not-for-merge tag 'v1.6.1' of https://github.com/pulp-platform/hwpe-ctrl +0336a85f7515fbd50ffab1a3290812401ef321b6 not-for-merge tag 'v1.6.2' of https://github.com/pulp-platform/hwpe-ctrl +7b280799efaf3d00940cddfc69adb6844b4d797f not-for-merge tag 'v1.7' of https://github.com/pulp-platform/hwpe-ctrl +4bf1487a463c262bf7d8ffee79d1cf392937daa2 not-for-merge tag 'v1.7.1' of https://github.com/pulp-platform/hwpe-ctrl +3d9b9bea7b98df24e6b235408364521a1a27d561 not-for-merge tag 'v1.7.2' of https://github.com/pulp-platform/hwpe-ctrl +1916c72f024175f1fe351acc3db3c6e9925a117d not-for-merge tag 'v1.7.3' of https://github.com/pulp-platform/hwpe-ctrl diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/HEAD b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/HEAD new file mode 100644 index 0000000..cb089cd --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/config b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/config new file mode 100644 index 0000000..a3180d8 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/config @@ -0,0 +1,7 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true +[remote "origin"] + url = https://github.com/pulp-platform/hwpe-ctrl.git + fetch = +refs/heads/*:refs/remotes/origin/* diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/description b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/applypatch-msg.sample b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/applypatch-msg.sample new file mode 100755 index 0000000..a5d7b84 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/commit-msg.sample b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/commit-msg.sample new file mode 100755 index 0000000..b58d118 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/fsmonitor-watchman.sample b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/fsmonitor-watchman.sample new file mode 100755 index 0000000..14ed0aa --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/fsmonitor-watchman.sample @@ -0,0 +1,173 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use IPC::Open2; + +# An example hook script to integrate Watchman +# (https://facebook.github.io/watchman/) with git to speed up detecting +# new and modified files. +# +# The hook is passed a version (currently 2) and last update token +# formatted as a string and outputs to stdout a new update token and +# all files that have been modified since the update token. Paths must +# be relative to the root of the working tree and separated by a single NUL. +# +# To enable this hook, rename this file to "query-watchman" and set +# 'git config core.fsmonitor .git/hooks/query-watchman' +# +my ($version, $last_update_token) = @ARGV; + +# Uncomment for debugging +# print STDERR "$0 $version $last_update_token\n"; + +# Check the hook interface version +if ($version ne 2) { + die "Unsupported query-fsmonitor hook version '$version'.\n" . + "Falling back to scanning...\n"; +} + +my $git_work_tree = get_working_dir(); + +my $retry = 1; + +my $json_pkg; +eval { + require JSON::XS; + $json_pkg = "JSON::XS"; + 1; +} or do { + require JSON::PP; + $json_pkg = "JSON::PP"; +}; + +launch_watchman(); + +sub launch_watchman { + my $o = watchman_query(); + if (is_work_tree_watched($o)) { + output_result($o->{clock}, @{$o->{files}}); + } +} + +sub output_result { + my ($clockid, @files) = @_; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # binmode $fh, ":utf8"; + # print $fh "$clockid\n@files\n"; + # close $fh; + + binmode STDOUT, ":utf8"; + print $clockid; + print "\0"; + local $, = "\0"; + print @files; +} + +sub watchman_clock { + my $response = qx/watchman clock "$git_work_tree"/; + die "Failed to get clock id on '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + + return $json_pkg->new->utf8->decode($response); +} + +sub watchman_query { + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') + or die "open2() failed: $!\n" . + "Falling back to scanning...\n"; + + # In the query expression below we're asking for names of files that + # changed since $last_update_token but not from the .git folder. + # + # To accomplish this, we're using the "since" generator to use the + # recency index to select candidate nodes and "fields" to limit the + # output to file names only. Then we're using the "expression" term to + # further constrain the results. + if (substr($last_update_token, 0, 1) eq "c") { + $last_update_token = "\"$last_update_token\""; + } + my $query = <<" END"; + ["query", "$git_work_tree", { + "since": $last_update_token, + "fields": ["name"], + "expression": ["not", ["dirname", ".git"]] + }] + END + + # Uncomment for debugging the watchman query + # open (my $fh, ">", ".git/watchman-query.json"); + # print $fh $query; + # close $fh; + + print CHLD_IN $query; + close CHLD_IN; + my $response = do {local $/; }; + + # Uncomment for debugging the watch response + # open ($fh, ">", ".git/watchman-response.json"); + # print $fh $response; + # close $fh; + + die "Watchman: command returned no output.\n" . + "Falling back to scanning...\n" if $response eq ""; + die "Watchman: command returned invalid output: $response\n" . + "Falling back to scanning...\n" unless $response =~ /^\{/; + + return $json_pkg->new->utf8->decode($response); +} + +sub is_work_tree_watched { + my ($output) = @_; + my $error = $output->{error}; + if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { + $retry--; + my $response = qx/watchman watch "$git_work_tree"/; + die "Failed to make watchman watch '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + $output = $json_pkg->new->utf8->decode($response); + $error = $output->{error}; + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # close $fh; + + # Watchman will always return all files on the first query so + # return the fast "everything is dirty" flag to git and do the + # Watchman query just to get it over with now so we won't pay + # the cost in git to look up each individual file. + my $o = watchman_clock(); + $error = $output->{error}; + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + output_result($o->{clock}, ("/")); + $last_update_token = $o->{clock}; + + eval { launch_watchman() }; + return 0; + } + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + return 1; +} + +sub get_working_dir { + my $working_dir; + if ($^O =~ 'msys' || $^O =~ 'cygwin') { + $working_dir = Win32::GetCwd(); + $working_dir =~ tr/\\/\//; + } else { + require Cwd; + $working_dir = Cwd::cwd(); + } + + return $working_dir; +} diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/post-update.sample b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/post-update.sample new file mode 100755 index 0000000..ec17ec1 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/pre-applypatch.sample b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/pre-applypatch.sample new file mode 100755 index 0000000..4142082 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/pre-commit.sample b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/pre-commit.sample new file mode 100755 index 0000000..e144712 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --type=bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/pre-merge-commit.sample b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/pre-merge-commit.sample new file mode 100755 index 0000000..399eab1 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/pre-push.sample b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/pre-push.sample new file mode 100755 index 0000000..4ce688d --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/pre-rebase.sample b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/pre-rebase.sample new file mode 100755 index 0000000..6cbef5c --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/pre-receive.sample b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/pre-receive.sample new file mode 100755 index 0000000..a1fd29e --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/prepare-commit-msg.sample b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/prepare-commit-msg.sample new file mode 100755 index 0000000..10fa14c --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/push-to-checkout.sample b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/push-to-checkout.sample new file mode 100755 index 0000000..af5a0c0 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/hooks/push-to-checkout.sample @@ -0,0 +1,78 @@ +#!/bin/sh + +# An example hook script to update a checked-out tree on a git push. +# +# This hook is invoked by git-receive-pack(1) when it reacts to git +# push and updates reference(s) in its repository, and when the push +# tries to update the branch that is currently checked out and the +# receive.denyCurrentBranch configuration variable is set to +# updateInstead. +# +# By default, such a push is refused if the working tree and the index +# of the remote repository has any difference from the currently +# checked out commit; when both the working tree and the index match +# the current commit, they are updated to match the newly pushed tip +# of the branch. This hook is to be used to override the default +# behaviour; however the code below reimplements the default behaviour +# as a starting point for convenient modification. +# +# The hook receives the commit with which the tip of the current +# branch is going to be updated: +commit=$1 + +# It can exit with a non-zero status to refuse the push (when it does +# so, it must not modify the index or the working tree). +die () { + echo >&2 "$*" + exit 1 +} + +# Or it can make any necessary changes to the working tree and to the +# index to bring them to the desired state when the tip of the current +# branch is updated to the new commit, and exit with a zero status. +# +# For example, the hook can simply run git read-tree -u -m HEAD "$1" +# in order to emulate git fetch that is run in the reverse direction +# with git push, as the two-tree form of git read-tree -u -m is +# essentially the same as git switch or git checkout that switches +# branches while keeping the local changes in the working tree that do +# not interfere with the difference between the branches. + +# The below is a more-or-less exact translation to shell of the C code +# for the default behaviour for git's push-to-checkout hook defined in +# the push_to_deploy() function in builtin/receive-pack.c. +# +# Note that the hook will be executed from the repository directory, +# not from the working tree, so if you want to perform operations on +# the working tree, you will have to adapt your code accordingly, e.g. +# by adding "cd .." or using relative paths. + +if ! git update-index -q --ignore-submodules --refresh +then + die "Up-to-date check failed" +fi + +if ! git diff-files --quiet --ignore-submodules -- +then + die "Working directory has unstaged changes" +fi + +# This is a rough translation of: +# +# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX +if git cat-file -e HEAD 2>/dev/null +then + head=HEAD +else + head=$(git hash-object -t tree --stdin &2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero=$(git hash-object --stdin &2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/info/exclude b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/1f/1dc7d296fc330af74c868059984a8bc3edded0 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/1f/1dc7d296fc330af74c868059984a8bc3edded0 new file mode 100644 index 0000000..3c905d9 Binary files /dev/null and b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/1f/1dc7d296fc330af74c868059984a8bc3edded0 differ diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/3a/27b94da3ccea2d3548b9cdd5a3961319e2efe7 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/3a/27b94da3ccea2d3548b9cdd5a3961319e2efe7 new file mode 100644 index 0000000..0b04ef8 Binary files /dev/null and b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/3a/27b94da3ccea2d3548b9cdd5a3961319e2efe7 differ diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/3b/f2402a0b93d2a00552f92be624f895e2cffcc0 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/3b/f2402a0b93d2a00552f92be624f895e2cffcc0 new file mode 100644 index 0000000..5fdd5c4 Binary files /dev/null and b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/3b/f2402a0b93d2a00552f92be624f895e2cffcc0 differ diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/4f/73c91ab7706ad3f63c72118547a90b12339a9f b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/4f/73c91ab7706ad3f63c72118547a90b12339a9f new file mode 100644 index 0000000..27f86d0 Binary files /dev/null and b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/4f/73c91ab7706ad3f63c72118547a90b12339a9f differ diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/67/87e7812d3f6c245c9f8f42541bb3ce9489acc5 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/67/87e7812d3f6c245c9f8f42541bb3ce9489acc5 new file mode 100644 index 0000000..6fad25f Binary files /dev/null and b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/67/87e7812d3f6c245c9f8f42541bb3ce9489acc5 differ diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/71/c93d83cf07ef1b7ed1875fd1ad6b4c57095bc0 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/71/c93d83cf07ef1b7ed1875fd1ad6b4c57095bc0 new file mode 100644 index 0000000..c107f89 Binary files /dev/null and b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/71/c93d83cf07ef1b7ed1875fd1ad6b4c57095bc0 differ diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/7b/a707d837697c2c7c6ea1396ec4e4ab094054a2 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/7b/a707d837697c2c7c6ea1396ec4e4ab094054a2 new file mode 100644 index 0000000..b84d5d3 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/7b/a707d837697c2c7c6ea1396ec4e4ab094054a2 @@ -0,0 +1,2 @@ +xMŽÑjÄ Eûœ¯˜÷BÈhŒ +˲¥Ðÿu² D j`Û¯o(íÒ·{ÜÃõ9Ƶ0ê¥f$´³c é=“RÆY‚"i'”hYð̺۩p:‡VLfÒžf'g§Ð›ÑNZÍ Ӗ=9CmÉî¿x­\þÒmÉ-Òºõ>Ç+ –GD…ð:à0t'=6.ðQ(y®>Ã{Nm…ËüôÛQ¹Ô>åÂûöÙß×¶î¿Tãh~¥Ý[ééˆîTçüéäG«Ð2ÔcßsiOvÝ7«‘_4 \ No newline at end of file diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/d1/de24ae8ac04bf98375fc7f34443daeee9b4d8c b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/d1/de24ae8ac04bf98375fc7f34443daeee9b4d8c new file mode 100644 index 0000000..a116e0b --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/d1/de24ae8ac04bf98375fc7f34443daeee9b4d8c @@ -0,0 +1,2 @@ +x¥ŽM +Â0F]ç³Ê$™4 ˆ¨{7Þ ?-4­Ä¸ðö/àöñ½—RÆÊЦUf lutÒk±÷Iç^G«¤ Yï0H¥µó.‹»¯<7àˆýÀA¯Kå³QQJIš!`ö.X•4 ÿl·¥ÂyŒ7Ï\–+Ïeyp…]ù²Cý±îù؃쑌sH[”ˆ"~ZÛªüó"Ž)q‚ωk÷*äqbñæ+R' \ No newline at end of file diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/fe/e5b9b7973c04a7d502d1c236320f1f25237239 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/fe/e5b9b7973c04a7d502d1c236320f1f25237239 new file mode 100644 index 0000000..cf0cda3 Binary files /dev/null and b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/fe/e5b9b7973c04a7d502d1c236320f1f25237239 differ diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/pack/pack-e8ddf5041ee1f955f35cf92941a9a2ebc4732712.idx b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/pack/pack-e8ddf5041ee1f955f35cf92941a9a2ebc4732712.idx new file mode 100644 index 0000000..64277a2 Binary files /dev/null and b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/pack/pack-e8ddf5041ee1f955f35cf92941a9a2ebc4732712.idx differ diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/pack/pack-e8ddf5041ee1f955f35cf92941a9a2ebc4732712.pack b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/pack/pack-e8ddf5041ee1f955f35cf92941a9a2ebc4732712.pack new file mode 100644 index 0000000..352b1ee Binary files /dev/null and b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/objects/pack/pack-e8ddf5041ee1f955f35cf92941a9a2ebc4732712.pack differ diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/archimedes b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/archimedes new file mode 100644 index 0000000..2ddebcd --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/archimedes @@ -0,0 +1 @@ +bdf4921498cd46bb6074a85fb5124f8e7da764e9 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/commit-and-trigger b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/commit-and-trigger new file mode 100644 index 0000000..498b5fd --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/commit-and-trigger @@ -0,0 +1 @@ +7b280799efaf3d00940cddfc69adb6844b4d797f diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/devel b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/devel new file mode 100644 index 0000000..fa9bfbf --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/devel @@ -0,0 +1 @@ +b350681985f9891c31a99d519b25af6014d8017b diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/ff-regfile b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/ff-regfile new file mode 100644 index 0000000..b0a8277 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/ff-regfile @@ -0,0 +1 @@ +01a68c2c757090a57747224cdac899468300265a diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/fix_pacakge_imports b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/fix_pacakge_imports new file mode 100644 index 0000000..523153d --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/fix_pacakge_imports @@ -0,0 +1 @@ +0d4e1d006678eb318d48f36382093ceb34fea99d diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/fix_timeunit_scope b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/fix_timeunit_scope new file mode 100644 index 0000000..1562ede --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/fix_timeunit_scope @@ -0,0 +1 @@ +b3848fac03e6c4ef928d71a705ca1d93dc52ddd2 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/flags-uloop-ready b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/flags-uloop-ready new file mode 100644 index 0000000..78e00d2 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/flags-uloop-ready @@ -0,0 +1 @@ +1916c72f024175f1fe351acc3db3c6e9925a117d diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/master b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/master new file mode 100644 index 0000000..321f499 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/master @@ -0,0 +1 @@ +7ba707d837697c2c7c6ea1396ec4e4ab094054a2 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/more_ops_per_loop b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/more_ops_per_loop new file mode 100644 index 0000000..f604032 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/more_ops_per_loop @@ -0,0 +1 @@ +1b1dfd04ae116badd18c1af4e59a74c5c4a61282 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/rt/remove_localparam_override b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/rt/remove_localparam_override new file mode 100644 index 0000000..45bffb6 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/rt/remove_localparam_override @@ -0,0 +1 @@ +af1368257fd2b9b2359524b528c0315a56e5b737 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/snitch b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/snitch new file mode 100644 index 0000000..ad7c943 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/snitch @@ -0,0 +1 @@ +9ce06b89968c4faa8cb7c6420118c6e0d7c42f1b diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/upstream b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/upstream new file mode 100644 index 0000000..11ba8b9 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/upstream @@ -0,0 +1 @@ +36ce2c4256e621f67e0e15652a0e37859a32042f diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/uriscy_intf b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/uriscy_intf new file mode 100644 index 0000000..1736f97 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/uriscy_intf @@ -0,0 +1 @@ +9be938eb4a8a11e542ecb61baff6b3977b8469ca diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/yt/reqrsp b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/yt/reqrsp new file mode 100644 index 0000000..a1b3861 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/yt/reqrsp @@ -0,0 +1 @@ +e4e2cd594739b4be81595ae603d41cbd5b0449ec diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/yt/task-interfaces b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/yt/task-interfaces new file mode 100644 index 0000000..cac7a36 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/remotes/origin/yt/task-interfaces @@ -0,0 +1 @@ +0e95510c0f4d43452d21b7723d766ae92e45c101 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/bender-tmp-2926867cafb3fb518a1ae849675f281b79ecab8a b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/bender-tmp-2926867cafb3fb518a1ae849675f281b79ecab8a new file mode 100644 index 0000000..9bf7878 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/bender-tmp-2926867cafb3fb518a1ae849675f281b79ecab8a @@ -0,0 +1 @@ +2926867cafb3fb518a1ae849675f281b79ecab8a diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/devel_vega_v1.0.0 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/devel_vega_v1.0.0 new file mode 100644 index 0000000..6b46001 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/devel_vega_v1.0.0 @@ -0,0 +1 @@ +21227f71b4b63b1fbf3c279afb7d8460402ee725 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/ec068eb-bender b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/ec068eb-bender new file mode 100644 index 0000000..195cfee --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/ec068eb-bender @@ -0,0 +1 @@ +71c93d83cf07ef1b7ed1875fd1ad6b4c57095bc0 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/hwce-v5.0 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/hwce-v5.0 new file mode 100644 index 0000000..2e45836 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/hwce-v5.0 @@ -0,0 +1 @@ +7e3dde7a1349fbb97fc043c9ea2e3fd3f7e670e9 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/hwce-v5.1.1 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/hwce-v5.1.1 new file mode 100644 index 0000000..b9617a2 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/hwce-v5.1.1 @@ -0,0 +1 @@ +599e6e15e1eb4a00882acc5e768670550c853791 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.0 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.0 new file mode 100644 index 0000000..b6ba51b --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.0 @@ -0,0 +1 @@ +718419701fa3e183108f951eaf56ad10e9c28fd0 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.0.1 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.0.1 new file mode 100644 index 0000000..51dd203 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.0.1 @@ -0,0 +1 @@ +d4c7e56a1a06939152991cb689422c280171f456 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.0.2 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.0.2 new file mode 100644 index 0000000..b9617a2 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.0.2 @@ -0,0 +1 @@ +599e6e15e1eb4a00882acc5e768670550c853791 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.1 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.1 new file mode 100644 index 0000000..b5cdd18 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.1 @@ -0,0 +1 @@ +8999cac8a0c990228e31048c891655ca8558cd03 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.1.1 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.1.1 new file mode 100644 index 0000000..6c14f6b --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.1.1 @@ -0,0 +1 @@ +487e3188d63dc35ed6f3af2cd690f70988f56060 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.1.2 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.1.2 new file mode 100644 index 0000000..57ef974 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.1.2 @@ -0,0 +1 @@ +7d1bc282803bc731092bf821379425e8779ee791 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.1.3 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.1.3 new file mode 100644 index 0000000..11ba8b9 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.1.3 @@ -0,0 +1 @@ +36ce2c4256e621f67e0e15652a0e37859a32042f diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.2 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.2 new file mode 100644 index 0000000..1736f97 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.2 @@ -0,0 +1 @@ +9be938eb4a8a11e542ecb61baff6b3977b8469ca diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.3 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.3 new file mode 100644 index 0000000..38ae906 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.3 @@ -0,0 +1 @@ +416993b902aa3c59421ac976b5d1bb97d051afb0 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.3.1 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.3.1 new file mode 100644 index 0000000..106a98d --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.3.1 @@ -0,0 +1 @@ +a780798f4af11a10b707d13c719a850ef888e04f diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.4 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.4 new file mode 100644 index 0000000..2f16213 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.4 @@ -0,0 +1 @@ +ee700d77a7c55e87fc88f6a6a58beb8cbcfc1c29 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.5 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.5 new file mode 100644 index 0000000..f604032 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.5 @@ -0,0 +1 @@ +1b1dfd04ae116badd18c1af4e59a74c5c4a61282 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.6 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.6 new file mode 100644 index 0000000..4f03317 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.6 @@ -0,0 +1 @@ +e088f7969dcdf9d234b606952b357da1ad4cebb1 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.6.1 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.6.1 new file mode 100644 index 0000000..d64c08f --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.6.1 @@ -0,0 +1 @@ +9323a2a0d304359aad54ac7661b72e8268cfb855 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.6.2 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.6.2 new file mode 100644 index 0000000..d353ae0 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.6.2 @@ -0,0 +1 @@ +0336a85f7515fbd50ffab1a3290812401ef321b6 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.7 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.7 new file mode 100644 index 0000000..498b5fd --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.7 @@ -0,0 +1 @@ +7b280799efaf3d00940cddfc69adb6844b4d797f diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.7.1 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.7.1 new file mode 100644 index 0000000..5cdf521 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.7.1 @@ -0,0 +1 @@ +4bf1487a463c262bf7d8ffee79d1cf392937daa2 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.7.2 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.7.2 new file mode 100644 index 0000000..22cedff --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.7.2 @@ -0,0 +1 @@ +3d9b9bea7b98df24e6b235408364521a1a27d561 diff --git a/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.7.3 b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.7.3 new file mode 100644 index 0000000..78e00d2 --- /dev/null +++ b/.bender/git/db/hwpe-ctrl-ccee699e17e1a0a2/refs/tags/v1.7.3 @@ -0,0 +1 @@ +1916c72f024175f1fe351acc3db3c6e9925a117d diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/FETCH_HEAD b/.bender/git/db/hwpe-stream-21764734af24a8b3/FETCH_HEAD new file mode 100644 index 0000000..ab7b429 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/FETCH_HEAD @@ -0,0 +1,48 @@ +0fe71ee6ac9827f51fd70d254260b629e653bb6a not-for-merge branch 'add-passthrough' of https://github.com/pulp-platform/hwpe-stream +dfdc87bee7ad0eae4fde2644a92175c2de183db9 not-for-merge branch 'add-serdes' of https://github.com/pulp-platform/hwpe-stream +580036037e62ae30dbfc9e9bc63357873eb920ed not-for-merge branch 'addressgen-v2' of https://github.com/pulp-platform/hwpe-stream +47b25a9dcfa73053ce641a95f8cc647857449bce not-for-merge branch 'bender-fix-sources' of https://github.com/pulp-platform/hwpe-stream +1ad61316adfb71dd0ff7dd17edb82591c5e5e6c9 not-for-merge branch 'bypass-skip-verilator' of https://github.com/pulp-platform/hwpe-stream +cba7df5c55e804253d7bdc1f5c436a94f70d58b2 not-for-merge branch 'check-realign-decoupled' of https://github.com/pulp-platform/hwpe-stream +e0ff335c33ac61745cab390cb44ea084af5c04bb not-for-merge branch 'devel' of https://github.com/pulp-platform/hwpe-stream +65c99a4a2f37a79acee800ab0151f67dfb1edef1 not-for-merge branch 'fifo-flags' of https://github.com/pulp-platform/hwpe-stream +46dbfa415204225b3537839a3f0db013ce195aef not-for-merge branch 'fix-oops' of https://github.com/pulp-platform/hwpe-stream +84d5859d7d2e154c252874e05e3b09b987674044 not-for-merge branch 'fix_fence' of https://github.com/pulp-platform/hwpe-stream +fce35ce23d0b54eb456af06611c7dfc4aded8570 not-for-merge branch 'fix_package_imports' of https://github.com/pulp-platform/hwpe-stream +ee9817c77273ab2c44c20c68e72dfc5949b77b0b not-for-merge branch 'fix_timeunit_scope' of https://github.com/pulp-platform/hwpe-stream +a3e3607c6c4473d79ef214bd8b6fc5313f24f302 not-for-merge branch 'marsellus' of https://github.com/pulp-platform/hwpe-stream +3bc9694705b72a5b9bddc7fcde5091b9e45ba0c8 not-for-merge branch 'master' of https://github.com/pulp-platform/hwpe-stream +77dd34a4669e671953d6205a499209563d64bbd5 not-for-merge branch 'new-doc' of https://github.com/pulp-platform/hwpe-stream +860028d56c62f8c6343c703850b460baaf24db5d not-for-merge branch 'prasadar/cosmetics' of https://github.com/pulp-platform/hwpe-stream +bec034a7847a84832c95cdf86a4a1dbae315b434 not-for-merge branch 'syntax-fix' of https://github.com/pulp-platform/hwpe-stream +e5b12af8effb8a7f0ba7efe3ce83e16a8e3b0568 not-for-merge branch 'tentative-fix-realign' of https://github.com/pulp-platform/hwpe-stream +b51a012f31e38c82a92cc1c5b9dfd0e87e0ac75f not-for-merge branch 'verif' of https://github.com/pulp-platform/hwpe-stream +e09cabc3cfd0811de44a0d1f72047a7028b462e6 not-for-merge tag '1a9b04f-bender' of https://github.com/pulp-platform/hwpe-stream +7dea11ed1290ef341ee7e80585608175795219cf not-for-merge tag 'devel_v1.0.0' of https://github.com/pulp-platform/hwpe-stream +00b21672a07577b8faf0e25f047123762b64bfc8 not-for-merge tag 'hwce-v5.0' of https://github.com/pulp-platform/hwpe-stream +a912f63ba651a5020f01a844dc88d7ed0bc07b9c not-for-merge tag 'hwce-v5.1.1' of https://github.com/pulp-platform/hwpe-stream +975e9ef6cc6fa409905d4b9346001ec1e4b65bef not-for-merge tag 'v1.0' of https://github.com/pulp-platform/hwpe-stream +f3f24d9ed67648cad8ec07eb94c6ab63d883d7c7 not-for-merge tag 'v1.0.1' of https://github.com/pulp-platform/hwpe-stream +fa986138202e2b6e0db74e61f5bdf1053eefdbd2 not-for-merge tag 'v1.0.2' of https://github.com/pulp-platform/hwpe-stream +1f30fe71356499eca78b252a131ff421499e0766 not-for-merge tag 'v1.0.3' of https://github.com/pulp-platform/hwpe-stream +5cc84ca32f6d19966398a2c6bc2c1f1d4399e302 not-for-merge tag 'v1.1' of https://github.com/pulp-platform/hwpe-stream +a912f63ba651a5020f01a844dc88d7ed0bc07b9c not-for-merge tag 'v1.2' of https://github.com/pulp-platform/hwpe-stream +ba855f9bb6039bae5fb095ec029dc88288ec502d not-for-merge tag 'v1.2.1' of https://github.com/pulp-platform/hwpe-stream +2b231fcb67f8ff6b56b5b58720114e0d18e90c9b not-for-merge tag 'v1.2.2' of https://github.com/pulp-platform/hwpe-stream +e6a696033313ecb6389df7c7d417248d8baec64a not-for-merge tag 'v1.2.3' of https://github.com/pulp-platform/hwpe-stream +713bc691c3aabe0eaf3ac420f32d631c039ad382 not-for-merge tag 'v1.2.4' of https://github.com/pulp-platform/hwpe-stream +5838d8b58657ee8517b818ac7040490be7fdd319 not-for-merge tag 'v1.2.5' of https://github.com/pulp-platform/hwpe-stream +64bdc6d345a44bd1a629a6ebfb2afd9d6680a45d not-for-merge tag 'v1.2.6' of https://github.com/pulp-platform/hwpe-stream +162041da4931b60ae49987cb35171b985fa88235 not-for-merge tag 'v1.2.7' of https://github.com/pulp-platform/hwpe-stream +36a0abbc168a660f5b250c2d73f55f066436ede6 not-for-merge tag 'v1.3' of https://github.com/pulp-platform/hwpe-stream +2ef7a8e34891b8aca1c49392240cbbbe615217e8 not-for-merge tag 'v1.4' of https://github.com/pulp-platform/hwpe-stream +580036037e62ae30dbfc9e9bc63357873eb920ed not-for-merge tag 'v1.5' of https://github.com/pulp-platform/hwpe-stream +1ad61316adfb71dd0ff7dd17edb82591c5e5e6c9 not-for-merge tag 'v1.6' of https://github.com/pulp-platform/hwpe-stream +08977fca7708cc061fe3e346ec448ec67f01790a not-for-merge tag 'v1.6.1' of https://github.com/pulp-platform/hwpe-stream +b5f759781b4838ded73d4ecc2c7879a4dfb5c87b not-for-merge tag 'v1.6.2' of https://github.com/pulp-platform/hwpe-stream +a6e42e4605bfba956aa21151a31e1dbe64c8ae95 not-for-merge tag 'v1.6.3' of https://github.com/pulp-platform/hwpe-stream +ddc154424187dff42a8fcec946c768ceb13f13de not-for-merge tag 'v1.6.4' of https://github.com/pulp-platform/hwpe-stream +389bd7fb1975d2df1546910c5f220c668122e646 not-for-merge tag 'v1.6.5' of https://github.com/pulp-platform/hwpe-stream +b6a41a3281ee54146a790d439a85722b3bf0c3e8 not-for-merge tag 'v1.7.0' of https://github.com/pulp-platform/hwpe-stream +bcb4435f802add732f557dc7fa1c6b5dd8854458 not-for-merge tag 'v1.7.1' of https://github.com/pulp-platform/hwpe-stream +65c99a4a2f37a79acee800ab0151f67dfb1edef1 not-for-merge tag 'v1.8.0' of https://github.com/pulp-platform/hwpe-stream diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/HEAD b/.bender/git/db/hwpe-stream-21764734af24a8b3/HEAD new file mode 100644 index 0000000..cb089cd --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/config b/.bender/git/db/hwpe-stream-21764734af24a8b3/config new file mode 100644 index 0000000..fa6c9d9 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/config @@ -0,0 +1,7 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true +[remote "origin"] + url = https://github.com/pulp-platform/hwpe-stream.git + fetch = +refs/heads/*:refs/remotes/origin/* diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/description b/.bender/git/db/hwpe-stream-21764734af24a8b3/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/applypatch-msg.sample b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/applypatch-msg.sample new file mode 100755 index 0000000..a5d7b84 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/commit-msg.sample b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/commit-msg.sample new file mode 100755 index 0000000..b58d118 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/fsmonitor-watchman.sample b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/fsmonitor-watchman.sample new file mode 100755 index 0000000..14ed0aa --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/fsmonitor-watchman.sample @@ -0,0 +1,173 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use IPC::Open2; + +# An example hook script to integrate Watchman +# (https://facebook.github.io/watchman/) with git to speed up detecting +# new and modified files. +# +# The hook is passed a version (currently 2) and last update token +# formatted as a string and outputs to stdout a new update token and +# all files that have been modified since the update token. Paths must +# be relative to the root of the working tree and separated by a single NUL. +# +# To enable this hook, rename this file to "query-watchman" and set +# 'git config core.fsmonitor .git/hooks/query-watchman' +# +my ($version, $last_update_token) = @ARGV; + +# Uncomment for debugging +# print STDERR "$0 $version $last_update_token\n"; + +# Check the hook interface version +if ($version ne 2) { + die "Unsupported query-fsmonitor hook version '$version'.\n" . + "Falling back to scanning...\n"; +} + +my $git_work_tree = get_working_dir(); + +my $retry = 1; + +my $json_pkg; +eval { + require JSON::XS; + $json_pkg = "JSON::XS"; + 1; +} or do { + require JSON::PP; + $json_pkg = "JSON::PP"; +}; + +launch_watchman(); + +sub launch_watchman { + my $o = watchman_query(); + if (is_work_tree_watched($o)) { + output_result($o->{clock}, @{$o->{files}}); + } +} + +sub output_result { + my ($clockid, @files) = @_; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # binmode $fh, ":utf8"; + # print $fh "$clockid\n@files\n"; + # close $fh; + + binmode STDOUT, ":utf8"; + print $clockid; + print "\0"; + local $, = "\0"; + print @files; +} + +sub watchman_clock { + my $response = qx/watchman clock "$git_work_tree"/; + die "Failed to get clock id on '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + + return $json_pkg->new->utf8->decode($response); +} + +sub watchman_query { + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') + or die "open2() failed: $!\n" . + "Falling back to scanning...\n"; + + # In the query expression below we're asking for names of files that + # changed since $last_update_token but not from the .git folder. + # + # To accomplish this, we're using the "since" generator to use the + # recency index to select candidate nodes and "fields" to limit the + # output to file names only. Then we're using the "expression" term to + # further constrain the results. + if (substr($last_update_token, 0, 1) eq "c") { + $last_update_token = "\"$last_update_token\""; + } + my $query = <<" END"; + ["query", "$git_work_tree", { + "since": $last_update_token, + "fields": ["name"], + "expression": ["not", ["dirname", ".git"]] + }] + END + + # Uncomment for debugging the watchman query + # open (my $fh, ">", ".git/watchman-query.json"); + # print $fh $query; + # close $fh; + + print CHLD_IN $query; + close CHLD_IN; + my $response = do {local $/; }; + + # Uncomment for debugging the watch response + # open ($fh, ">", ".git/watchman-response.json"); + # print $fh $response; + # close $fh; + + die "Watchman: command returned no output.\n" . + "Falling back to scanning...\n" if $response eq ""; + die "Watchman: command returned invalid output: $response\n" . + "Falling back to scanning...\n" unless $response =~ /^\{/; + + return $json_pkg->new->utf8->decode($response); +} + +sub is_work_tree_watched { + my ($output) = @_; + my $error = $output->{error}; + if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { + $retry--; + my $response = qx/watchman watch "$git_work_tree"/; + die "Failed to make watchman watch '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + $output = $json_pkg->new->utf8->decode($response); + $error = $output->{error}; + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # close $fh; + + # Watchman will always return all files on the first query so + # return the fast "everything is dirty" flag to git and do the + # Watchman query just to get it over with now so we won't pay + # the cost in git to look up each individual file. + my $o = watchman_clock(); + $error = $output->{error}; + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + output_result($o->{clock}, ("/")); + $last_update_token = $o->{clock}; + + eval { launch_watchman() }; + return 0; + } + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + return 1; +} + +sub get_working_dir { + my $working_dir; + if ($^O =~ 'msys' || $^O =~ 'cygwin') { + $working_dir = Win32::GetCwd(); + $working_dir =~ tr/\\/\//; + } else { + require Cwd; + $working_dir = Cwd::cwd(); + } + + return $working_dir; +} diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/post-update.sample b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/post-update.sample new file mode 100755 index 0000000..ec17ec1 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/pre-applypatch.sample b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/pre-applypatch.sample new file mode 100755 index 0000000..4142082 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/pre-commit.sample b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/pre-commit.sample new file mode 100755 index 0000000..e144712 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --type=bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/pre-merge-commit.sample b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/pre-merge-commit.sample new file mode 100755 index 0000000..399eab1 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/pre-push.sample b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/pre-push.sample new file mode 100755 index 0000000..4ce688d --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/pre-rebase.sample b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/pre-rebase.sample new file mode 100755 index 0000000..6cbef5c --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/pre-receive.sample b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/pre-receive.sample new file mode 100755 index 0000000..a1fd29e --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/prepare-commit-msg.sample b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/prepare-commit-msg.sample new file mode 100755 index 0000000..10fa14c --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/push-to-checkout.sample b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/push-to-checkout.sample new file mode 100755 index 0000000..af5a0c0 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/hooks/push-to-checkout.sample @@ -0,0 +1,78 @@ +#!/bin/sh + +# An example hook script to update a checked-out tree on a git push. +# +# This hook is invoked by git-receive-pack(1) when it reacts to git +# push and updates reference(s) in its repository, and when the push +# tries to update the branch that is currently checked out and the +# receive.denyCurrentBranch configuration variable is set to +# updateInstead. +# +# By default, such a push is refused if the working tree and the index +# of the remote repository has any difference from the currently +# checked out commit; when both the working tree and the index match +# the current commit, they are updated to match the newly pushed tip +# of the branch. This hook is to be used to override the default +# behaviour; however the code below reimplements the default behaviour +# as a starting point for convenient modification. +# +# The hook receives the commit with which the tip of the current +# branch is going to be updated: +commit=$1 + +# It can exit with a non-zero status to refuse the push (when it does +# so, it must not modify the index or the working tree). +die () { + echo >&2 "$*" + exit 1 +} + +# Or it can make any necessary changes to the working tree and to the +# index to bring them to the desired state when the tip of the current +# branch is updated to the new commit, and exit with a zero status. +# +# For example, the hook can simply run git read-tree -u -m HEAD "$1" +# in order to emulate git fetch that is run in the reverse direction +# with git push, as the two-tree form of git read-tree -u -m is +# essentially the same as git switch or git checkout that switches +# branches while keeping the local changes in the working tree that do +# not interfere with the difference between the branches. + +# The below is a more-or-less exact translation to shell of the C code +# for the default behaviour for git's push-to-checkout hook defined in +# the push_to_deploy() function in builtin/receive-pack.c. +# +# Note that the hook will be executed from the repository directory, +# not from the working tree, so if you want to perform operations on +# the working tree, you will have to adapt your code accordingly, e.g. +# by adding "cd .." or using relative paths. + +if ! git update-index -q --ignore-submodules --refresh +then + die "Up-to-date check failed" +fi + +if ! git diff-files --quiet --ignore-submodules -- +then + die "Working directory has unstaged changes" +fi + +# This is a rough translation of: +# +# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX +if git cat-file -e HEAD 2>/dev/null +then + head=HEAD +else + head=$(git hash-object -t tree --stdin &2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero=$(git hash-object --stdin &2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/info/exclude b/.bender/git/db/hwpe-stream-21764734af24a8b3/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/objects/35/4166a79185c6372bc137a15da3073355f124a1 b/.bender/git/db/hwpe-stream-21764734af24a8b3/objects/35/4166a79185c6372bc137a15da3073355f124a1 new file mode 100644 index 0000000..b157bdc Binary files /dev/null and b/.bender/git/db/hwpe-stream-21764734af24a8b3/objects/35/4166a79185c6372bc137a15da3073355f124a1 differ diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/objects/39/2d719009b330b79a9d9c49ac540c4e1583003e b/.bender/git/db/hwpe-stream-21764734af24a8b3/objects/39/2d719009b330b79a9d9c49ac540c4e1583003e new file mode 100644 index 0000000..31401b8 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/objects/39/2d719009b330b79a9d9c49ac540c4e1583003e @@ -0,0 +1,5 @@ +x•”ßoÓ0ÇyÎ_qê^@,){M¨Ò¤Ä ‰4YŽsINuìÈvZ +âç’¬[Ë:7<¤q/Ÿûáó×Wh[ÀÕ»«÷/:©Ö²Æ<0²Åšm‡©eË6Ù‡Æ:Ÿ¯RXÜ:izeáÆš@p]ejX¬zC…Í(|XìÑ$‘ðEöš \wã»^ù 1ÃÐüÊTóˆßjëÐøjš]ͱ'Sæö¦UíÍVnЧUc¬¶5¡çZŽ””Ø¡)Ñ(¶ [¡Pk/j4èHåðj +9,øwÅOÓƒwÞõºK;-Ce]»|ê˜1»¸„ :OÖäð&»ÊÞŸ$¹€ !l¸M?ø/Àkc·Ò™oßo>}¾dË]’xÛ;îÛPT +d”îK%qkÇv Vô¸®HOàÔr6/‡CÓ¡ˆûËüæÐó!ÐU’óÅ(Y–½çÆÄ¨Š*+P:½óAj-<•ÜÔÿð8‹zÕžgfe…)úªB#ZÖÆ€Š…|§)Ä"x2ëè÷Q%Q‚#¾œšêè±Mz›C¶ýO–– ¤byKœÇU¶bÔŒ¶²ŒE<&gèêÑÁgcsÁs˜›3;´®Œ+è; +›Ât©áB!nóÃÅòø G·±t¤ÙS˜Bâ©´ßj¬bžoƆ—~gBƒžü+Îól B[%§Ñ3POS ª=¥¤ä¨ßÙgKîG¥e}?‡Ñ™‚5zwPÒdôkêÄÃv’¿‡?3 \ No newline at end of file diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/objects/da/0471e9cb71e59a3cd4879a0d9bc248440018ac b/.bender/git/db/hwpe-stream-21764734af24a8b3/objects/da/0471e9cb71e59a3cd4879a0d9bc248440018ac new file mode 100644 index 0000000..f866dfd Binary files /dev/null and b/.bender/git/db/hwpe-stream-21764734af24a8b3/objects/da/0471e9cb71e59a3cd4879a0d9bc248440018ac differ diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/objects/e0/9cabc3cfd0811de44a0d1f72047a7028b462e6 b/.bender/git/db/hwpe-stream-21764734af24a8b3/objects/e0/9cabc3cfd0811de44a0d1f72047a7028b462e6 new file mode 100644 index 0000000..e29ba09 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/objects/e0/9cabc3cfd0811de44a0d1f72047a7028b462e6 @@ -0,0 +1 @@ +xu1nÃ0 E;ëÜR¢ÔPéб[/@I´Å ’\YIœ¾6’Œ]ˆ||¿â;i^²=’«àQêN‘qv™{ƒ;çuß”ÞX·Õ½ÖRª¨×‰À幊º0+õÐXJžÊº©À¦ýÀç8rÄ”à-Ò#˜ç–¨¥n­ ï ^egö26RI)ÄÜa|#g*3çy€p™¨™k!ŒB|ža˜2§ºÄ 1{øß«‡7°jÃ%° °¢Â³ú=qY(özÿÑ5”FNgÕn[ñç1hA \ No newline at end of file diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/objects/pack/pack-b4b60a06ab18ee65a698239865c457518c391aa5.idx b/.bender/git/db/hwpe-stream-21764734af24a8b3/objects/pack/pack-b4b60a06ab18ee65a698239865c457518c391aa5.idx new file mode 100644 index 0000000..83ce9c0 Binary files /dev/null and b/.bender/git/db/hwpe-stream-21764734af24a8b3/objects/pack/pack-b4b60a06ab18ee65a698239865c457518c391aa5.idx differ diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/objects/pack/pack-b4b60a06ab18ee65a698239865c457518c391aa5.pack b/.bender/git/db/hwpe-stream-21764734af24a8b3/objects/pack/pack-b4b60a06ab18ee65a698239865c457518c391aa5.pack new file mode 100644 index 0000000..06e3764 Binary files /dev/null and b/.bender/git/db/hwpe-stream-21764734af24a8b3/objects/pack/pack-b4b60a06ab18ee65a698239865c457518c391aa5.pack differ diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/add-passthrough b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/add-passthrough new file mode 100644 index 0000000..469b5db --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/add-passthrough @@ -0,0 +1 @@ +0fe71ee6ac9827f51fd70d254260b629e653bb6a diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/add-serdes b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/add-serdes new file mode 100644 index 0000000..cd6f2e6 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/add-serdes @@ -0,0 +1 @@ +dfdc87bee7ad0eae4fde2644a92175c2de183db9 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/addressgen-v2 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/addressgen-v2 new file mode 100644 index 0000000..6dc2f9c --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/addressgen-v2 @@ -0,0 +1 @@ +580036037e62ae30dbfc9e9bc63357873eb920ed diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/bender-fix-sources b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/bender-fix-sources new file mode 100644 index 0000000..8f9464e --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/bender-fix-sources @@ -0,0 +1 @@ +47b25a9dcfa73053ce641a95f8cc647857449bce diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/bypass-skip-verilator b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/bypass-skip-verilator new file mode 100644 index 0000000..77baf5a --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/bypass-skip-verilator @@ -0,0 +1 @@ +1ad61316adfb71dd0ff7dd17edb82591c5e5e6c9 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/check-realign-decoupled b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/check-realign-decoupled new file mode 100644 index 0000000..d5cdd4f --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/check-realign-decoupled @@ -0,0 +1 @@ +cba7df5c55e804253d7bdc1f5c436a94f70d58b2 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/devel b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/devel new file mode 100644 index 0000000..4b8577f --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/devel @@ -0,0 +1 @@ +e0ff335c33ac61745cab390cb44ea084af5c04bb diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/fifo-flags b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/fifo-flags new file mode 100644 index 0000000..0adb2af --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/fifo-flags @@ -0,0 +1 @@ +65c99a4a2f37a79acee800ab0151f67dfb1edef1 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/fix-oops b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/fix-oops new file mode 100644 index 0000000..4bcc982 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/fix-oops @@ -0,0 +1 @@ +46dbfa415204225b3537839a3f0db013ce195aef diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/fix_fence b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/fix_fence new file mode 100644 index 0000000..a3bb321 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/fix_fence @@ -0,0 +1 @@ +84d5859d7d2e154c252874e05e3b09b987674044 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/fix_package_imports b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/fix_package_imports new file mode 100644 index 0000000..4c3e40a --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/fix_package_imports @@ -0,0 +1 @@ +fce35ce23d0b54eb456af06611c7dfc4aded8570 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/fix_timeunit_scope b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/fix_timeunit_scope new file mode 100644 index 0000000..8aa26e7 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/fix_timeunit_scope @@ -0,0 +1 @@ +ee9817c77273ab2c44c20c68e72dfc5949b77b0b diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/marsellus b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/marsellus new file mode 100644 index 0000000..93be7ba --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/marsellus @@ -0,0 +1 @@ +a3e3607c6c4473d79ef214bd8b6fc5313f24f302 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/master b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/master new file mode 100644 index 0000000..20708e7 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/master @@ -0,0 +1 @@ +3bc9694705b72a5b9bddc7fcde5091b9e45ba0c8 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/new-doc b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/new-doc new file mode 100644 index 0000000..c2ad64f --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/new-doc @@ -0,0 +1 @@ +77dd34a4669e671953d6205a499209563d64bbd5 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/prasadar/cosmetics b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/prasadar/cosmetics new file mode 100644 index 0000000..6407b06 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/prasadar/cosmetics @@ -0,0 +1 @@ +860028d56c62f8c6343c703850b460baaf24db5d diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/syntax-fix b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/syntax-fix new file mode 100644 index 0000000..612b9f1 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/syntax-fix @@ -0,0 +1 @@ +bec034a7847a84832c95cdf86a4a1dbae315b434 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/tentative-fix-realign b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/tentative-fix-realign new file mode 100644 index 0000000..56ac0d1 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/tentative-fix-realign @@ -0,0 +1 @@ +e5b12af8effb8a7f0ba7efe3ce83e16a8e3b0568 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/verif b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/verif new file mode 100644 index 0000000..6a35639 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/remotes/origin/verif @@ -0,0 +1 @@ +b51a012f31e38c82a92cc1c5b9dfd0e87e0ac75f diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/1a9b04f-bender b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/1a9b04f-bender new file mode 100644 index 0000000..1aa3403 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/1a9b04f-bender @@ -0,0 +1 @@ +e09cabc3cfd0811de44a0d1f72047a7028b462e6 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/bender-tmp-65c99a4a2f37a79acee800ab0151f67dfb1edef1 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/bender-tmp-65c99a4a2f37a79acee800ab0151f67dfb1edef1 new file mode 100644 index 0000000..0adb2af --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/bender-tmp-65c99a4a2f37a79acee800ab0151f67dfb1edef1 @@ -0,0 +1 @@ +65c99a4a2f37a79acee800ab0151f67dfb1edef1 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/devel_v1.0.0 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/devel_v1.0.0 new file mode 100644 index 0000000..f9d0ae6 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/devel_v1.0.0 @@ -0,0 +1 @@ +7dea11ed1290ef341ee7e80585608175795219cf diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/hwce-v5.0 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/hwce-v5.0 new file mode 100644 index 0000000..c3e84a6 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/hwce-v5.0 @@ -0,0 +1 @@ +00b21672a07577b8faf0e25f047123762b64bfc8 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/hwce-v5.1.1 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/hwce-v5.1.1 new file mode 100644 index 0000000..b5f0130 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/hwce-v5.1.1 @@ -0,0 +1 @@ +a912f63ba651a5020f01a844dc88d7ed0bc07b9c diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.0 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.0 new file mode 100644 index 0000000..ccda3c6 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.0 @@ -0,0 +1 @@ +975e9ef6cc6fa409905d4b9346001ec1e4b65bef diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.0.1 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.0.1 new file mode 100644 index 0000000..d0af737 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.0.1 @@ -0,0 +1 @@ +f3f24d9ed67648cad8ec07eb94c6ab63d883d7c7 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.0.2 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.0.2 new file mode 100644 index 0000000..c122210 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.0.2 @@ -0,0 +1 @@ +fa986138202e2b6e0db74e61f5bdf1053eefdbd2 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.0.3 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.0.3 new file mode 100644 index 0000000..fc32163 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.0.3 @@ -0,0 +1 @@ +1f30fe71356499eca78b252a131ff421499e0766 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.1 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.1 new file mode 100644 index 0000000..6bb1c95 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.1 @@ -0,0 +1 @@ +5cc84ca32f6d19966398a2c6bc2c1f1d4399e302 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2 new file mode 100644 index 0000000..b5f0130 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2 @@ -0,0 +1 @@ +a912f63ba651a5020f01a844dc88d7ed0bc07b9c diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.1 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.1 new file mode 100644 index 0000000..b5a1de3 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.1 @@ -0,0 +1 @@ +ba855f9bb6039bae5fb095ec029dc88288ec502d diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.2 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.2 new file mode 100644 index 0000000..2ff556a --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.2 @@ -0,0 +1 @@ +2b231fcb67f8ff6b56b5b58720114e0d18e90c9b diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.3 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.3 new file mode 100644 index 0000000..33502f3 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.3 @@ -0,0 +1 @@ +e6a696033313ecb6389df7c7d417248d8baec64a diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.4 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.4 new file mode 100644 index 0000000..82aa5e7 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.4 @@ -0,0 +1 @@ +713bc691c3aabe0eaf3ac420f32d631c039ad382 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.5 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.5 new file mode 100644 index 0000000..926ac48 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.5 @@ -0,0 +1 @@ +5838d8b58657ee8517b818ac7040490be7fdd319 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.6 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.6 new file mode 100644 index 0000000..7a1f5cf --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.6 @@ -0,0 +1 @@ +64bdc6d345a44bd1a629a6ebfb2afd9d6680a45d diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.7 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.7 new file mode 100644 index 0000000..acc4923 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.2.7 @@ -0,0 +1 @@ +162041da4931b60ae49987cb35171b985fa88235 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.3 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.3 new file mode 100644 index 0000000..0390bac --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.3 @@ -0,0 +1 @@ +36a0abbc168a660f5b250c2d73f55f066436ede6 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.4 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.4 new file mode 100644 index 0000000..7e701cc --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.4 @@ -0,0 +1 @@ +2ef7a8e34891b8aca1c49392240cbbbe615217e8 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.5 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.5 new file mode 100644 index 0000000..6dc2f9c --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.5 @@ -0,0 +1 @@ +580036037e62ae30dbfc9e9bc63357873eb920ed diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.6 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.6 new file mode 100644 index 0000000..77baf5a --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.6 @@ -0,0 +1 @@ +1ad61316adfb71dd0ff7dd17edb82591c5e5e6c9 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.6.1 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.6.1 new file mode 100644 index 0000000..32c4b4c --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.6.1 @@ -0,0 +1 @@ +08977fca7708cc061fe3e346ec448ec67f01790a diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.6.2 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.6.2 new file mode 100644 index 0000000..feae5a5 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.6.2 @@ -0,0 +1 @@ +b5f759781b4838ded73d4ecc2c7879a4dfb5c87b diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.6.3 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.6.3 new file mode 100644 index 0000000..f2855dc --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.6.3 @@ -0,0 +1 @@ +a6e42e4605bfba956aa21151a31e1dbe64c8ae95 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.6.4 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.6.4 new file mode 100644 index 0000000..87e246c --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.6.4 @@ -0,0 +1 @@ +ddc154424187dff42a8fcec946c768ceb13f13de diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.6.5 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.6.5 new file mode 100644 index 0000000..b52ca0d --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.6.5 @@ -0,0 +1 @@ +389bd7fb1975d2df1546910c5f220c668122e646 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.7.0 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.7.0 new file mode 100644 index 0000000..9046dfb --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.7.0 @@ -0,0 +1 @@ +b6a41a3281ee54146a790d439a85722b3bf0c3e8 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.7.1 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.7.1 new file mode 100644 index 0000000..d34ee44 --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.7.1 @@ -0,0 +1 @@ +bcb4435f802add732f557dc7fa1c6b5dd8854458 diff --git a/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.8.0 b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.8.0 new file mode 100644 index 0000000..0adb2af --- /dev/null +++ b/.bender/git/db/hwpe-stream-21764734af24a8b3/refs/tags/v1.8.0 @@ -0,0 +1 @@ +65c99a4a2f37a79acee800ab0151f67dfb1edef1 diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/FETCH_HEAD b/.bender/git/db/ibex-7e6955b4ea4f082f/FETCH_HEAD new file mode 100644 index 0000000..2e04a9d --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/FETCH_HEAD @@ -0,0 +1,17 @@ +e861caa13e202e4820e6ba07e6d6f1455b09a87e not-for-merge branch 'ci' of https://github.com/pulp-platform/ibex +b29b36d2438bf2837d87b67a8c55f2edce6de891 not-for-merge branch 'ext' of https://github.com/pulp-platform/ibex +def205ad765256ad6e05112ccefa7842b1282443 not-for-merge branch 'gsoc/2020/pointer-authentication' of https://github.com/pulp-platform/ibex +5693d7da3264f96e52b05a496cf447fe532606f7 not-for-merge branch 'master' of https://github.com/pulp-platform/ibex +1884d2dcc0e813062b3b1a19c20866e0f02aafcf not-for-merge branch 'private-ci' of https://github.com/pulp-platform/ibex +ab3ec361be6f8bd7abad1accb3700659890f7ad3 not-for-merge branch 'pulpinov1' of https://github.com/pulp-platform/ibex +b18f7ef178ed07f5085051f96042c670a919fd5c not-for-merge branch 'pulpissimo' of https://github.com/pulp-platform/ibex +1b1ba90e9f7dcfa0cb4ffa1b545e4ecdc84c9209 not-for-merge branch 'setback' of https://github.com/pulp-platform/ibex +38934581151a977f523bc4f09fb8069c181a6510 not-for-merge tag 'pulpino-v1.0.0' of https://github.com/pulp-platform/ibex +b99e74ef26e19694aff39845481fe9f21b0639fc not-for-merge tag 'pulpissimo-v1.0' of https://github.com/pulp-platform/ibex +71cb9878f468974c3171f610b9c47c70d5137fad not-for-merge tag 'pulpissimo-v1.0.0' of https://github.com/pulp-platform/ibex +d4d46971ebd5e0a637d2d182af675e7c43078885 not-for-merge tag 'pulpissimo-v1.0.1' of https://github.com/pulp-platform/ibex +13313952cd50ff04489f6cf3dba9ba05c2011a8b not-for-merge tag 'pulpissimo-v4.1.0' of https://github.com/pulp-platform/ibex +e65a27e14dda7bb3b09cadc4e9232305fd451cec not-for-merge tag 'pulpissimo-v6.0.0' of https://github.com/pulp-platform/ibex +54533b07441fd60363bcfd0e5c04b9a7f5b33849 not-for-merge tag 'pulpissimo-v6.1.0' of https://github.com/pulp-platform/ibex +95b85ddd1c995ace9f89ee42530f9e24820c1051 not-for-merge tag 'pulpissimo-v6.1.1' of https://github.com/pulp-platform/ibex +b18f7ef178ed07f5085051f96042c670a919fd5c not-for-merge tag 'pulpissimo-v6.1.2' of https://github.com/pulp-platform/ibex diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/HEAD b/.bender/git/db/ibex-7e6955b4ea4f082f/HEAD new file mode 100644 index 0000000..cb089cd --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/config b/.bender/git/db/ibex-7e6955b4ea4f082f/config new file mode 100644 index 0000000..8c3c6d8 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/config @@ -0,0 +1,7 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true +[remote "origin"] + url = https://github.com/pulp-platform/ibex.git + fetch = +refs/heads/*:refs/remotes/origin/* diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/description b/.bender/git/db/ibex-7e6955b4ea4f082f/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/applypatch-msg.sample b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/applypatch-msg.sample new file mode 100755 index 0000000..a5d7b84 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/commit-msg.sample b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/commit-msg.sample new file mode 100755 index 0000000..b58d118 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/fsmonitor-watchman.sample b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/fsmonitor-watchman.sample new file mode 100755 index 0000000..14ed0aa --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/fsmonitor-watchman.sample @@ -0,0 +1,173 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use IPC::Open2; + +# An example hook script to integrate Watchman +# (https://facebook.github.io/watchman/) with git to speed up detecting +# new and modified files. +# +# The hook is passed a version (currently 2) and last update token +# formatted as a string and outputs to stdout a new update token and +# all files that have been modified since the update token. Paths must +# be relative to the root of the working tree and separated by a single NUL. +# +# To enable this hook, rename this file to "query-watchman" and set +# 'git config core.fsmonitor .git/hooks/query-watchman' +# +my ($version, $last_update_token) = @ARGV; + +# Uncomment for debugging +# print STDERR "$0 $version $last_update_token\n"; + +# Check the hook interface version +if ($version ne 2) { + die "Unsupported query-fsmonitor hook version '$version'.\n" . + "Falling back to scanning...\n"; +} + +my $git_work_tree = get_working_dir(); + +my $retry = 1; + +my $json_pkg; +eval { + require JSON::XS; + $json_pkg = "JSON::XS"; + 1; +} or do { + require JSON::PP; + $json_pkg = "JSON::PP"; +}; + +launch_watchman(); + +sub launch_watchman { + my $o = watchman_query(); + if (is_work_tree_watched($o)) { + output_result($o->{clock}, @{$o->{files}}); + } +} + +sub output_result { + my ($clockid, @files) = @_; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # binmode $fh, ":utf8"; + # print $fh "$clockid\n@files\n"; + # close $fh; + + binmode STDOUT, ":utf8"; + print $clockid; + print "\0"; + local $, = "\0"; + print @files; +} + +sub watchman_clock { + my $response = qx/watchman clock "$git_work_tree"/; + die "Failed to get clock id on '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + + return $json_pkg->new->utf8->decode($response); +} + +sub watchman_query { + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') + or die "open2() failed: $!\n" . + "Falling back to scanning...\n"; + + # In the query expression below we're asking for names of files that + # changed since $last_update_token but not from the .git folder. + # + # To accomplish this, we're using the "since" generator to use the + # recency index to select candidate nodes and "fields" to limit the + # output to file names only. Then we're using the "expression" term to + # further constrain the results. + if (substr($last_update_token, 0, 1) eq "c") { + $last_update_token = "\"$last_update_token\""; + } + my $query = <<" END"; + ["query", "$git_work_tree", { + "since": $last_update_token, + "fields": ["name"], + "expression": ["not", ["dirname", ".git"]] + }] + END + + # Uncomment for debugging the watchman query + # open (my $fh, ">", ".git/watchman-query.json"); + # print $fh $query; + # close $fh; + + print CHLD_IN $query; + close CHLD_IN; + my $response = do {local $/; }; + + # Uncomment for debugging the watch response + # open ($fh, ">", ".git/watchman-response.json"); + # print $fh $response; + # close $fh; + + die "Watchman: command returned no output.\n" . + "Falling back to scanning...\n" if $response eq ""; + die "Watchman: command returned invalid output: $response\n" . + "Falling back to scanning...\n" unless $response =~ /^\{/; + + return $json_pkg->new->utf8->decode($response); +} + +sub is_work_tree_watched { + my ($output) = @_; + my $error = $output->{error}; + if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { + $retry--; + my $response = qx/watchman watch "$git_work_tree"/; + die "Failed to make watchman watch '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + $output = $json_pkg->new->utf8->decode($response); + $error = $output->{error}; + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # close $fh; + + # Watchman will always return all files on the first query so + # return the fast "everything is dirty" flag to git and do the + # Watchman query just to get it over with now so we won't pay + # the cost in git to look up each individual file. + my $o = watchman_clock(); + $error = $output->{error}; + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + output_result($o->{clock}, ("/")); + $last_update_token = $o->{clock}; + + eval { launch_watchman() }; + return 0; + } + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + return 1; +} + +sub get_working_dir { + my $working_dir; + if ($^O =~ 'msys' || $^O =~ 'cygwin') { + $working_dir = Win32::GetCwd(); + $working_dir =~ tr/\\/\//; + } else { + require Cwd; + $working_dir = Cwd::cwd(); + } + + return $working_dir; +} diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/post-update.sample b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/post-update.sample new file mode 100755 index 0000000..ec17ec1 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/pre-applypatch.sample b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/pre-applypatch.sample new file mode 100755 index 0000000..4142082 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/pre-commit.sample b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/pre-commit.sample new file mode 100755 index 0000000..e144712 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --type=bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/pre-merge-commit.sample b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/pre-merge-commit.sample new file mode 100755 index 0000000..399eab1 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/pre-push.sample b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/pre-push.sample new file mode 100755 index 0000000..4ce688d --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/pre-rebase.sample b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/pre-rebase.sample new file mode 100755 index 0000000..6cbef5c --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/pre-receive.sample b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/pre-receive.sample new file mode 100755 index 0000000..a1fd29e --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/prepare-commit-msg.sample b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/prepare-commit-msg.sample new file mode 100755 index 0000000..10fa14c --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/push-to-checkout.sample b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/push-to-checkout.sample new file mode 100755 index 0000000..af5a0c0 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/hooks/push-to-checkout.sample @@ -0,0 +1,78 @@ +#!/bin/sh + +# An example hook script to update a checked-out tree on a git push. +# +# This hook is invoked by git-receive-pack(1) when it reacts to git +# push and updates reference(s) in its repository, and when the push +# tries to update the branch that is currently checked out and the +# receive.denyCurrentBranch configuration variable is set to +# updateInstead. +# +# By default, such a push is refused if the working tree and the index +# of the remote repository has any difference from the currently +# checked out commit; when both the working tree and the index match +# the current commit, they are updated to match the newly pushed tip +# of the branch. This hook is to be used to override the default +# behaviour; however the code below reimplements the default behaviour +# as a starting point for convenient modification. +# +# The hook receives the commit with which the tip of the current +# branch is going to be updated: +commit=$1 + +# It can exit with a non-zero status to refuse the push (when it does +# so, it must not modify the index or the working tree). +die () { + echo >&2 "$*" + exit 1 +} + +# Or it can make any necessary changes to the working tree and to the +# index to bring them to the desired state when the tip of the current +# branch is updated to the new commit, and exit with a zero status. +# +# For example, the hook can simply run git read-tree -u -m HEAD "$1" +# in order to emulate git fetch that is run in the reverse direction +# with git push, as the two-tree form of git read-tree -u -m is +# essentially the same as git switch or git checkout that switches +# branches while keeping the local changes in the working tree that do +# not interfere with the difference between the branches. + +# The below is a more-or-less exact translation to shell of the C code +# for the default behaviour for git's push-to-checkout hook defined in +# the push_to_deploy() function in builtin/receive-pack.c. +# +# Note that the hook will be executed from the repository directory, +# not from the working tree, so if you want to perform operations on +# the working tree, you will have to adapt your code accordingly, e.g. +# by adding "cd .." or using relative paths. + +if ! git update-index -q --ignore-submodules --refresh +then + die "Up-to-date check failed" +fi + +if ! git diff-files --quiet --ignore-submodules -- +then + die "Working directory has unstaged changes" +fi + +# This is a rough translation of: +# +# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX +if git cat-file -e HEAD 2>/dev/null +then + head=HEAD +else + head=$(git hash-object -t tree --stdin &2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero=$(git hash-object --stdin &2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/info/exclude b/.bender/git/db/ibex-7e6955b4ea4f082f/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/04/618e65ebf8ac54edfa4624ff0577bf855d56a5 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/04/618e65ebf8ac54edfa4624ff0577bf855d56a5 new file mode 100644 index 0000000..c3db137 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/04/618e65ebf8ac54edfa4624ff0577bf855d56a5 @@ -0,0 +1,4 @@ +x+)JMU04°°`040031QÐKÎIÌK×MË/ÊM,aXtÔéÈ‹Äz ^ù†]K‚ϹÕæg–d¦çå¥2„Na•^øÛiÉl½S™[‹ž)U]ߪÊÙß/$ÈÓ)4ÄÓÏ]/7…a~»mñçúue“^5k-¨{²c‡”?Li«‹gH0X•Weãù´#kÒ¯ÿÙZ^³]Q3ªÊÇÓÙÕ/Ø•áškfX±É,Ö¬o—[&r³ï“ßkY¨¢ÄªÒ¢T݂̂Ԝ̼Ôb½Ê܆Ôck#›Âüfý癳ÊU¸3\,‚*OÎHMÎŽ/ÉÏω/J-,Í,JÍMÍ+)ÖK…‘PÙã§ÝRö÷ÉžKÓO]g·ÎôŒ‰($g2¸³”N“þ|æâ[;­=?7ÞXøþ̈dJ~2×Ï›¬?_ýüÃ4éÄUï5›'+´ëBeË8ý£×ýq*4¯Œ/—ò¹Ðñîü¡?ùÉÔŠÄÜ‚œÔb†? ¯œ:—üèËcÏ–ûD¦Ý­±urfRjE|r~^Zf:Ð{‰@ÿ.Ée˜•ÐÇ T›Ð-1¹'¶ PÅE©ýžw*Ülã™KSòu|¶ØÍrf—eMA5¶(5¾¤(193/¢Ãcã÷ «­?kêph©àíKÞÞ'¬#39†µ|>['±œÚSYcSLJšaëPÜQ 5TüKÇ‘3o,sÄt 7Þg‹Ÿ;gû5dCA.H-‚¡L`ᎅsŠÛ« +œ75®-;_ ,`—0ä.j¼¯¨:Amžgå'ÄÄi[Z`Ù¢ ²$#?O%^K*J˜x~æf)>¦Î[•Ý—÷èÇE‡Fˆ‰E%9 å¼Ç;5DÖ]ˆu—âôeb?´DZ"[œ‘X”šÂ°lUʽLæUJ%¥o´-d÷0PØ +u|qQr<(C’¡çæ}…a‡^Ms0-9rùáÃMNMï &Uæ1l¿¿KóIGSøñ=—æ8N¼hð˘ɱ ’a…ÄÌùÓßþ÷•xñ÷t ÇÜ_ælÓJK2sDާ³­/÷ ûåØ<µmÇ¢ e÷#é²Ô¼”ü"†£â®“¶yN‰édøñ¦æ"Ó¾…E÷Æ»µ_ \ No newline at end of file diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/10/ae019ae5e468bdadd39407fb5326d786839f26 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/10/ae019ae5e468bdadd39407fb5326d786839f26 new file mode 100644 index 0000000..3ffdc83 Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/10/ae019ae5e468bdadd39407fb5326d786839f26 differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/13/313952cd50ff04489f6cf3dba9ba05c2011a8b b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/13/313952cd50ff04489f6cf3dba9ba05c2011a8b new file mode 100644 index 0000000..247d430 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/13/313952cd50ff04489f6cf3dba9ba05c2011a8b @@ -0,0 +1,3 @@ +xPÍNÃ0 朧ðijºµIB<Ó¸ÎM6R“L‰»ÁÛ“Ž8s±åŸïÇ6Ñ{ǰ«å'"°Ý¶l[٭饱 +©jT¯Võn7˜®oûÖ¶V‹& + ½De±×%*ÝiÝ¡¶ÖȦ¶½"²8t†Úª¶žb‚w—¼ pˆ#Íðr^ÓɽÍñ’\6›˜ÆWM«;¹UMO•¬*a®™þ‡û„Æ…ñ>žÀ"ã ”R1ã)g .Ž'8Þ_GG!öAþŒ_-ðä2dF&¿ž\ŠLL‰ _Áqá²E8àãP|‡Ìi1¼ýJapÉ”µ3”/äè 8ƹ4ÏÀ­Zt3WЃcƒ¸ zâøx‰w \ No newline at end of file diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/14/67ec772f9258f008ea4df3bc877efa97cec7d7 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/14/67ec772f9258f008ea4df3bc877efa97cec7d7 new file mode 100644 index 0000000..162469f Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/14/67ec772f9258f008ea4df3bc877efa97cec7d7 differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/18/9b3aa817a13504612f67521c7f4e7bb1ec03b5 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/18/9b3aa817a13504612f67521c7f4e7bb1ec03b5 new file mode 100644 index 0000000..fda24d4 Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/18/9b3aa817a13504612f67521c7f4e7bb1ec03b5 differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/21/665a74dba9b46e3ce1e8f135735e082428ba00 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/21/665a74dba9b46e3ce1e8f135735e082428ba00 new file mode 100644 index 0000000..23fb274 Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/21/665a74dba9b46e3ce1e8f135735e082428ba00 differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/2c/340849acb09d29fb4dbdda6db7413aef002946 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/2c/340849acb09d29fb4dbdda6db7413aef002946 new file mode 100644 index 0000000..5076b49 Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/2c/340849acb09d29fb4dbdda6db7413aef002946 differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/37/90152e32d546e687f6ed151b8dcf57e4737470 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/37/90152e32d546e687f6ed151b8dcf57e4737470 new file mode 100644 index 0000000..b369a19 Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/37/90152e32d546e687f6ed151b8dcf57e4737470 differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/48/bc68a029ee98df1080ccfae0a97279d64f0a68 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/48/bc68a029ee98df1080ccfae0a97279d64f0a68 new file mode 100644 index 0000000..5dd164e Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/48/bc68a029ee98df1080ccfae0a97279d64f0a68 differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/50/f1f23b71de2205f7c3ce45a29178a2aa5520e1 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/50/f1f23b71de2205f7c3ce45a29178a2aa5520e1 new file mode 100644 index 0000000..9986f51 Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/50/f1f23b71de2205f7c3ce45a29178a2aa5520e1 differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/51/404abba3267c2f423bb84b77228be7ca081a18 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/51/404abba3267c2f423bb84b77228be7ca081a18 new file mode 100644 index 0000000..2da58d6 Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/51/404abba3267c2f423bb84b77228be7ca081a18 differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/59/ab843507808b7027c54aca96a6098e399b6039 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/59/ab843507808b7027c54aca96a6098e399b6039 new file mode 100644 index 0000000..a37df71 Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/59/ab843507808b7027c54aca96a6098e399b6039 differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/68/86972fcc6cc68308dcfd313b941332050c31d0 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/68/86972fcc6cc68308dcfd313b941332050c31d0 new file mode 100644 index 0000000..3f37f9b Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/68/86972fcc6cc68308dcfd313b941332050c31d0 differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/77/0dc7892814aed05b15471a094d0207c2a41b2d b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/77/0dc7892814aed05b15471a094d0207c2a41b2d new file mode 100644 index 0000000..072275e Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/77/0dc7892814aed05b15471a094d0207c2a41b2d differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/81/d8fb7a64fb6cc062af6a96345563a9abbeca90 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/81/d8fb7a64fb6cc062af6a96345563a9abbeca90 new file mode 100644 index 0000000..6470cb5 Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/81/d8fb7a64fb6cc062af6a96345563a9abbeca90 differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/86/9cb30ad8277e5395dbc6b55eea9b9b9a80d542 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/86/9cb30ad8277e5395dbc6b55eea9b9b9a80d542 new file mode 100644 index 0000000..12a515a Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/86/9cb30ad8277e5395dbc6b55eea9b9b9a80d542 differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/9a/47b0486d23caeb5c52685bdd6a00e34dd9d86b b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/9a/47b0486d23caeb5c52685bdd6a00e34dd9d86b new file mode 100644 index 0000000..b84be11 Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/9a/47b0486d23caeb5c52685bdd6a00e34dd9d86b differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/a9/a7621a9ef57c6ebe071399ed9ce71dc33cf0a2 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/a9/a7621a9ef57c6ebe071399ed9ce71dc33cf0a2 new file mode 100644 index 0000000..4d3687a Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/a9/a7621a9ef57c6ebe071399ed9ce71dc33cf0a2 differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/b1/a7fab8a7f789889a8ffc152fb7eefad9ce602f b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/b1/a7fab8a7f789889a8ffc152fb7eefad9ce602f new file mode 100644 index 0000000..112f2d8 Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/b1/a7fab8a7f789889a8ffc152fb7eefad9ce602f differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/b3/7d3f1c4578e24a309152bd6442ace81f83f99e b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/b3/7d3f1c4578e24a309152bd6442ace81f83f99e new file mode 100644 index 0000000..207b4e6 Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/b3/7d3f1c4578e24a309152bd6442ace81f83f99e differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/d2/cec07bfbaa3c50ee33c21422ef5cbbfe13e67a b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/d2/cec07bfbaa3c50ee33c21422ef5cbbfe13e67a new file mode 100644 index 0000000..5f795ac Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/d2/cec07bfbaa3c50ee33c21422ef5cbbfe13e67a differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/d7/9a0b365748900882fa2d30aadf198e4b4abeed b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/d7/9a0b365748900882fa2d30aadf198e4b4abeed new file mode 100644 index 0000000..b44356a Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/d7/9a0b365748900882fa2d30aadf198e4b4abeed differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/dc/ac21e103b5f24c408374b43ed04b76e64be05a b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/dc/ac21e103b5f24c408374b43ed04b76e64be05a new file mode 100644 index 0000000..5b66928 Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/dc/ac21e103b5f24c408374b43ed04b76e64be05a differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/e0/4f57897348a5259c7f7bb9c4e9870abc798ccb b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/e0/4f57897348a5259c7f7bb9c4e9870abc798ccb new file mode 100644 index 0000000..a3fec34 Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/e0/4f57897348a5259c7f7bb9c4e9870abc798ccb differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/e0/a85dc6b4c4ee5a5985858e2ba01cc46f3f7e23 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/e0/a85dc6b4c4ee5a5985858e2ba01cc46f3f7e23 new file mode 100644 index 0000000..5b99cca Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/e0/a85dc6b4c4ee5a5985858e2ba01cc46f3f7e23 differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/e1/5f81fb2c85643b8df9edde5a7e8743160b6d52 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/e1/5f81fb2c85643b8df9edde5a7e8743160b6d52 new file mode 100644 index 0000000..4238b35 Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/e1/5f81fb2c85643b8df9edde5a7e8743160b6d52 differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/e6/5a27e14dda7bb3b09cadc4e9232305fd451cec b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/e6/5a27e14dda7bb3b09cadc4e9232305fd451cec new file mode 100644 index 0000000..a4fe3b4 Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/e6/5a27e14dda7bb3b09cadc4e9232305fd451cec differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/f2/14cd99d715fae5699a6da735ef93d76445bbd5 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/f2/14cd99d715fae5699a6da735ef93d76445bbd5 new file mode 100644 index 0000000..bf77c5b Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/f2/14cd99d715fae5699a6da735ef93d76445bbd5 differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/f6/40e0253fb4a3489ed7cb35d75fe462ade60bee b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/f6/40e0253fb4a3489ed7cb35d75fe462ade60bee new file mode 100644 index 0000000..4a8c83c Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/f6/40e0253fb4a3489ed7cb35d75fe462ade60bee differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/f9/32df60f3cb1cf7ae057b8c87244dc9b6b6f6f8 b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/f9/32df60f3cb1cf7ae057b8c87244dc9b6b6f6f8 new file mode 100644 index 0000000..00d02d8 Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/f9/32df60f3cb1cf7ae057b8c87244dc9b6b6f6f8 differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/pack/pack-9d00dc5f938b5306773ed06921cb4cf72fc6a12c.idx b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/pack/pack-9d00dc5f938b5306773ed06921cb4cf72fc6a12c.idx new file mode 100644 index 0000000..93689aa Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/pack/pack-9d00dc5f938b5306773ed06921cb4cf72fc6a12c.idx differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/objects/pack/pack-9d00dc5f938b5306773ed06921cb4cf72fc6a12c.pack b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/pack/pack-9d00dc5f938b5306773ed06921cb4cf72fc6a12c.pack new file mode 100644 index 0000000..9eb3574 Binary files /dev/null and b/.bender/git/db/ibex-7e6955b4ea4f082f/objects/pack/pack-9d00dc5f938b5306773ed06921cb4cf72fc6a12c.pack differ diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/ci b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/ci new file mode 100644 index 0000000..68505f0 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/ci @@ -0,0 +1 @@ +e861caa13e202e4820e6ba07e6d6f1455b09a87e diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/ext b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/ext new file mode 100644 index 0000000..4683962 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/ext @@ -0,0 +1 @@ +b29b36d2438bf2837d87b67a8c55f2edce6de891 diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/gsoc/2020/pointer-authentication b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/gsoc/2020/pointer-authentication new file mode 100644 index 0000000..02a495b --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/gsoc/2020/pointer-authentication @@ -0,0 +1 @@ +def205ad765256ad6e05112ccefa7842b1282443 diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/master b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/master new file mode 100644 index 0000000..0ccf4a8 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/master @@ -0,0 +1 @@ +5693d7da3264f96e52b05a496cf447fe532606f7 diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/private-ci b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/private-ci new file mode 100644 index 0000000..f744b46 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/private-ci @@ -0,0 +1 @@ +1884d2dcc0e813062b3b1a19c20866e0f02aafcf diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/pulpinov1 b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/pulpinov1 new file mode 100644 index 0000000..984d271 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/pulpinov1 @@ -0,0 +1 @@ +ab3ec361be6f8bd7abad1accb3700659890f7ad3 diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/pulpissimo b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/pulpissimo new file mode 100644 index 0000000..fdd8e04 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/pulpissimo @@ -0,0 +1 @@ +b18f7ef178ed07f5085051f96042c670a919fd5c diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/setback b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/setback new file mode 100644 index 0000000..e770cf2 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/remotes/origin/setback @@ -0,0 +1 @@ +1b1ba90e9f7dcfa0cb4ffa1b545e4ecdc84c9209 diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/bender-tmp-b18f7ef178ed07f5085051f96042c670a919fd5c b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/bender-tmp-b18f7ef178ed07f5085051f96042c670a919fd5c new file mode 100644 index 0000000..fdd8e04 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/bender-tmp-b18f7ef178ed07f5085051f96042c670a919fd5c @@ -0,0 +1 @@ +b18f7ef178ed07f5085051f96042c670a919fd5c diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpino-v1.0.0 b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpino-v1.0.0 new file mode 100644 index 0000000..5d1b9d4 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpino-v1.0.0 @@ -0,0 +1 @@ +38934581151a977f523bc4f09fb8069c181a6510 diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v1.0 b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v1.0 new file mode 100644 index 0000000..435564b --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v1.0 @@ -0,0 +1 @@ +b99e74ef26e19694aff39845481fe9f21b0639fc diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v1.0.0 b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v1.0.0 new file mode 100644 index 0000000..6579b20 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v1.0.0 @@ -0,0 +1 @@ +71cb9878f468974c3171f610b9c47c70d5137fad diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v1.0.1 b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v1.0.1 new file mode 100644 index 0000000..3e5e261 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v1.0.1 @@ -0,0 +1 @@ +d4d46971ebd5e0a637d2d182af675e7c43078885 diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v4.1.0 b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v4.1.0 new file mode 100644 index 0000000..cb39d63 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v4.1.0 @@ -0,0 +1 @@ +13313952cd50ff04489f6cf3dba9ba05c2011a8b diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v6.0.0 b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v6.0.0 new file mode 100644 index 0000000..626e636 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v6.0.0 @@ -0,0 +1 @@ +e65a27e14dda7bb3b09cadc4e9232305fd451cec diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v6.1.0 b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v6.1.0 new file mode 100644 index 0000000..f9e5841 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v6.1.0 @@ -0,0 +1 @@ +54533b07441fd60363bcfd0e5c04b9a7f5b33849 diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v6.1.1 b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v6.1.1 new file mode 100644 index 0000000..3ed933b --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v6.1.1 @@ -0,0 +1 @@ +95b85ddd1c995ace9f89ee42530f9e24820c1051 diff --git a/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v6.1.2 b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v6.1.2 new file mode 100644 index 0000000..fdd8e04 --- /dev/null +++ b/.bender/git/db/ibex-7e6955b4ea4f082f/refs/tags/pulpissimo-v6.1.2 @@ -0,0 +1 @@ +b18f7ef178ed07f5085051f96042c670a919fd5c diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/FETCH_HEAD b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/FETCH_HEAD new file mode 100644 index 0000000..91f8c33 --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/FETCH_HEAD @@ -0,0 +1,13 @@ +72bde200b88cbf47b56fa1e88ae6cee5184f35bb not-for-merge branch 'AXI_CH_with_mem_protection' of https://github.com/pulp-platform/L2_tcdm_hybrid_interco +049312f30951b150780d76832935758b8c9b6f4c not-for-merge branch 'documentation' of https://github.com/pulp-platform/L2_tcdm_hybrid_interco +fa55e72859dcfb117a2788a77352193bef94ff2b not-for-merge branch 'master' of https://github.com/pulp-platform/L2_tcdm_hybrid_interco +a396db6169bd517f01cdad61bd8e1106ed8ad7e0 not-for-merge tag 'AXI_CH_with_mem_protection_v1.0.0' of https://github.com/pulp-platform/L2_tcdm_hybrid_interco +d8dc0cc1702c3937432e4558dc3949d768f25d51 not-for-merge tag 'AXI_CH_with_mem_protection_v1.0.1' of https://github.com/pulp-platform/L2_tcdm_hybrid_interco +1743e75db925bbcf060dc27d30e5a127ff2c4887 not-for-merge tag 'AXI_CH_with_mem_protection_v1.0.2' of https://github.com/pulp-platform/L2_tcdm_hybrid_interco +19ae41d578f3d09e9ec127446f11f35e5f187507 not-for-merge tag 'AXI_CH_with_mem_protection_v1.0.3' of https://github.com/pulp-platform/L2_tcdm_hybrid_interco +621de2cf6ab138ea652224f22c8e11c8560026e8 not-for-merge tag 'AXI_CH_with_mem_protection_v1.0.4' of https://github.com/pulp-platform/L2_tcdm_hybrid_interco +48068e6113d7b05145430d2e50b872bfecbf2693 not-for-merge tag 'AXI_CH_with_mem_protection_v1.0.5' of https://github.com/pulp-platform/L2_tcdm_hybrid_interco +48af245fbcc6751e5b047b1f920818f22887e4bd not-for-merge tag 'AXI_CH_with_mem_protection_v1.0.6' of https://github.com/pulp-platform/L2_tcdm_hybrid_interco +b55055b3425da640fd552411ead2a96493970a5d not-for-merge tag 'pulpissimo-v1.0' of https://github.com/pulp-platform/L2_tcdm_hybrid_interco +fa55e72859dcfb117a2788a77352193bef94ff2b not-for-merge tag 'v1.0' of https://github.com/pulp-platform/L2_tcdm_hybrid_interco +fa55e72859dcfb117a2788a77352193bef94ff2b not-for-merge tag 'v1.0.0' of https://github.com/pulp-platform/L2_tcdm_hybrid_interco diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/HEAD b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/HEAD new file mode 100644 index 0000000..cb089cd --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/config b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/config new file mode 100644 index 0000000..3a5ae3f --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/config @@ -0,0 +1,7 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true +[remote "origin"] + url = https://github.com/pulp-platform/L2_tcdm_hybrid_interco.git + fetch = +refs/heads/*:refs/remotes/origin/* diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/description b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/applypatch-msg.sample b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/applypatch-msg.sample new file mode 100755 index 0000000..a5d7b84 --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/commit-msg.sample b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/commit-msg.sample new file mode 100755 index 0000000..b58d118 --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/fsmonitor-watchman.sample b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/fsmonitor-watchman.sample new file mode 100755 index 0000000..14ed0aa --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/fsmonitor-watchman.sample @@ -0,0 +1,173 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use IPC::Open2; + +# An example hook script to integrate Watchman +# (https://facebook.github.io/watchman/) with git to speed up detecting +# new and modified files. +# +# The hook is passed a version (currently 2) and last update token +# formatted as a string and outputs to stdout a new update token and +# all files that have been modified since the update token. Paths must +# be relative to the root of the working tree and separated by a single NUL. +# +# To enable this hook, rename this file to "query-watchman" and set +# 'git config core.fsmonitor .git/hooks/query-watchman' +# +my ($version, $last_update_token) = @ARGV; + +# Uncomment for debugging +# print STDERR "$0 $version $last_update_token\n"; + +# Check the hook interface version +if ($version ne 2) { + die "Unsupported query-fsmonitor hook version '$version'.\n" . + "Falling back to scanning...\n"; +} + +my $git_work_tree = get_working_dir(); + +my $retry = 1; + +my $json_pkg; +eval { + require JSON::XS; + $json_pkg = "JSON::XS"; + 1; +} or do { + require JSON::PP; + $json_pkg = "JSON::PP"; +}; + +launch_watchman(); + +sub launch_watchman { + my $o = watchman_query(); + if (is_work_tree_watched($o)) { + output_result($o->{clock}, @{$o->{files}}); + } +} + +sub output_result { + my ($clockid, @files) = @_; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # binmode $fh, ":utf8"; + # print $fh "$clockid\n@files\n"; + # close $fh; + + binmode STDOUT, ":utf8"; + print $clockid; + print "\0"; + local $, = "\0"; + print @files; +} + +sub watchman_clock { + my $response = qx/watchman clock "$git_work_tree"/; + die "Failed to get clock id on '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + + return $json_pkg->new->utf8->decode($response); +} + +sub watchman_query { + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') + or die "open2() failed: $!\n" . + "Falling back to scanning...\n"; + + # In the query expression below we're asking for names of files that + # changed since $last_update_token but not from the .git folder. + # + # To accomplish this, we're using the "since" generator to use the + # recency index to select candidate nodes and "fields" to limit the + # output to file names only. Then we're using the "expression" term to + # further constrain the results. + if (substr($last_update_token, 0, 1) eq "c") { + $last_update_token = "\"$last_update_token\""; + } + my $query = <<" END"; + ["query", "$git_work_tree", { + "since": $last_update_token, + "fields": ["name"], + "expression": ["not", ["dirname", ".git"]] + }] + END + + # Uncomment for debugging the watchman query + # open (my $fh, ">", ".git/watchman-query.json"); + # print $fh $query; + # close $fh; + + print CHLD_IN $query; + close CHLD_IN; + my $response = do {local $/; }; + + # Uncomment for debugging the watch response + # open ($fh, ">", ".git/watchman-response.json"); + # print $fh $response; + # close $fh; + + die "Watchman: command returned no output.\n" . + "Falling back to scanning...\n" if $response eq ""; + die "Watchman: command returned invalid output: $response\n" . + "Falling back to scanning...\n" unless $response =~ /^\{/; + + return $json_pkg->new->utf8->decode($response); +} + +sub is_work_tree_watched { + my ($output) = @_; + my $error = $output->{error}; + if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { + $retry--; + my $response = qx/watchman watch "$git_work_tree"/; + die "Failed to make watchman watch '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + $output = $json_pkg->new->utf8->decode($response); + $error = $output->{error}; + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # close $fh; + + # Watchman will always return all files on the first query so + # return the fast "everything is dirty" flag to git and do the + # Watchman query just to get it over with now so we won't pay + # the cost in git to look up each individual file. + my $o = watchman_clock(); + $error = $output->{error}; + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + output_result($o->{clock}, ("/")); + $last_update_token = $o->{clock}; + + eval { launch_watchman() }; + return 0; + } + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + return 1; +} + +sub get_working_dir { + my $working_dir; + if ($^O =~ 'msys' || $^O =~ 'cygwin') { + $working_dir = Win32::GetCwd(); + $working_dir =~ tr/\\/\//; + } else { + require Cwd; + $working_dir = Cwd::cwd(); + } + + return $working_dir; +} diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/post-update.sample b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/post-update.sample new file mode 100755 index 0000000..ec17ec1 --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/pre-applypatch.sample b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/pre-applypatch.sample new file mode 100755 index 0000000..4142082 --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/pre-commit.sample b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/pre-commit.sample new file mode 100755 index 0000000..e144712 --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --type=bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/pre-merge-commit.sample b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/pre-merge-commit.sample new file mode 100755 index 0000000..399eab1 --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/pre-push.sample b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/pre-push.sample new file mode 100755 index 0000000..4ce688d --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/pre-rebase.sample b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/pre-rebase.sample new file mode 100755 index 0000000..6cbef5c --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/pre-receive.sample b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/pre-receive.sample new file mode 100755 index 0000000..a1fd29e --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/prepare-commit-msg.sample b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/prepare-commit-msg.sample new file mode 100755 index 0000000..10fa14c --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/push-to-checkout.sample b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/push-to-checkout.sample new file mode 100755 index 0000000..af5a0c0 --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/hooks/push-to-checkout.sample @@ -0,0 +1,78 @@ +#!/bin/sh + +# An example hook script to update a checked-out tree on a git push. +# +# This hook is invoked by git-receive-pack(1) when it reacts to git +# push and updates reference(s) in its repository, and when the push +# tries to update the branch that is currently checked out and the +# receive.denyCurrentBranch configuration variable is set to +# updateInstead. +# +# By default, such a push is refused if the working tree and the index +# of the remote repository has any difference from the currently +# checked out commit; when both the working tree and the index match +# the current commit, they are updated to match the newly pushed tip +# of the branch. This hook is to be used to override the default +# behaviour; however the code below reimplements the default behaviour +# as a starting point for convenient modification. +# +# The hook receives the commit with which the tip of the current +# branch is going to be updated: +commit=$1 + +# It can exit with a non-zero status to refuse the push (when it does +# so, it must not modify the index or the working tree). +die () { + echo >&2 "$*" + exit 1 +} + +# Or it can make any necessary changes to the working tree and to the +# index to bring them to the desired state when the tip of the current +# branch is updated to the new commit, and exit with a zero status. +# +# For example, the hook can simply run git read-tree -u -m HEAD "$1" +# in order to emulate git fetch that is run in the reverse direction +# with git push, as the two-tree form of git read-tree -u -m is +# essentially the same as git switch or git checkout that switches +# branches while keeping the local changes in the working tree that do +# not interfere with the difference between the branches. + +# The below is a more-or-less exact translation to shell of the C code +# for the default behaviour for git's push-to-checkout hook defined in +# the push_to_deploy() function in builtin/receive-pack.c. +# +# Note that the hook will be executed from the repository directory, +# not from the working tree, so if you want to perform operations on +# the working tree, you will have to adapt your code accordingly, e.g. +# by adding "cd .." or using relative paths. + +if ! git update-index -q --ignore-submodules --refresh +then + die "Up-to-date check failed" +fi + +if ! git diff-files --quiet --ignore-submodules -- +then + die "Working directory has unstaged changes" +fi + +# This is a rough translation of: +# +# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX +if git cat-file -e HEAD 2>/dev/null +then + head=HEAD +else + head=$(git hash-object -t tree --stdin &2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero=$(git hash-object --stdin &2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/info/exclude b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/objects/pack/pack-c17438d6faac90275da5e3f299aa67f6a3793079.idx b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/objects/pack/pack-c17438d6faac90275da5e3f299aa67f6a3793079.idx new file mode 100644 index 0000000..4e6d578 Binary files /dev/null and b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/objects/pack/pack-c17438d6faac90275da5e3f299aa67f6a3793079.idx differ diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/objects/pack/pack-c17438d6faac90275da5e3f299aa67f6a3793079.pack b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/objects/pack/pack-c17438d6faac90275da5e3f299aa67f6a3793079.pack new file mode 100644 index 0000000..63efc1a Binary files /dev/null and b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/objects/pack/pack-c17438d6faac90275da5e3f299aa67f6a3793079.pack differ diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/remotes/origin/AXI_CH_with_mem_protection b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/remotes/origin/AXI_CH_with_mem_protection new file mode 100644 index 0000000..9eb68cd --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/remotes/origin/AXI_CH_with_mem_protection @@ -0,0 +1 @@ +72bde200b88cbf47b56fa1e88ae6cee5184f35bb diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/remotes/origin/documentation b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/remotes/origin/documentation new file mode 100644 index 0000000..74b4a3d --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/remotes/origin/documentation @@ -0,0 +1 @@ +049312f30951b150780d76832935758b8c9b6f4c diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/remotes/origin/master b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/remotes/origin/master new file mode 100644 index 0000000..ffc5dbe --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/remotes/origin/master @@ -0,0 +1 @@ +fa55e72859dcfb117a2788a77352193bef94ff2b diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.0 b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.0 new file mode 100644 index 0000000..310fd03 --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.0 @@ -0,0 +1 @@ +a396db6169bd517f01cdad61bd8e1106ed8ad7e0 diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.1 b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.1 new file mode 100644 index 0000000..8971691 --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.1 @@ -0,0 +1 @@ +d8dc0cc1702c3937432e4558dc3949d768f25d51 diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.2 b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.2 new file mode 100644 index 0000000..4c15bdf --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.2 @@ -0,0 +1 @@ +1743e75db925bbcf060dc27d30e5a127ff2c4887 diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.3 b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.3 new file mode 100644 index 0000000..8cb2de4 --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.3 @@ -0,0 +1 @@ +19ae41d578f3d09e9ec127446f11f35e5f187507 diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.4 b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.4 new file mode 100644 index 0000000..92c00d9 --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.4 @@ -0,0 +1 @@ +621de2cf6ab138ea652224f22c8e11c8560026e8 diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.5 b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.5 new file mode 100644 index 0000000..99e4404 --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.5 @@ -0,0 +1 @@ +48068e6113d7b05145430d2e50b872bfecbf2693 diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.6 b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.6 new file mode 100644 index 0000000..d72c786 --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/AXI_CH_with_mem_protection_v1.0.6 @@ -0,0 +1 @@ +48af245fbcc6751e5b047b1f920818f22887e4bd diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/bender-tmp-fa55e72859dcfb117a2788a77352193bef94ff2b b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/bender-tmp-fa55e72859dcfb117a2788a77352193bef94ff2b new file mode 100644 index 0000000..ffc5dbe --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/bender-tmp-fa55e72859dcfb117a2788a77352193bef94ff2b @@ -0,0 +1 @@ +fa55e72859dcfb117a2788a77352193bef94ff2b diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/pulpissimo-v1.0 b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/pulpissimo-v1.0 new file mode 100644 index 0000000..6a70d39 --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/pulpissimo-v1.0 @@ -0,0 +1 @@ +b55055b3425da640fd552411ead2a96493970a5d diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/v1.0 b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/v1.0 new file mode 100644 index 0000000..ffc5dbe --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/v1.0 @@ -0,0 +1 @@ +fa55e72859dcfb117a2788a77352193bef94ff2b diff --git a/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/v1.0.0 b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/v1.0.0 new file mode 100644 index 0000000..ffc5dbe --- /dev/null +++ b/.bender/git/db/l2_tcdm_hybrid_interco-856b83469b66ed97/refs/tags/v1.0.0 @@ -0,0 +1 @@ +fa55e72859dcfb117a2788a77352193bef94ff2b diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/FETCH_HEAD b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/FETCH_HEAD new file mode 100644 index 0000000..91ce2d5 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/FETCH_HEAD @@ -0,0 +1,49 @@ +ef99266fb0c58f897d2ff9237f45cf2df98d8def not-for-merge branch 'add_clk_OR2' of https://github.com/pulp-platform/tech_cells_generic +2d4030b502fd5e05d3d6d64ecdff4defcc09fd21 not-for-merge branch 'bender-patch-fpga' of https://github.com/pulp-platform/tech_cells_generic +bc74aa5b1383660c95e90a0800abb545e917a5f1 not-for-merge branch 'bender-synth-fix' of https://github.com/pulp-platform/tech_cells_generic +7e92d7aae3af501b7f0d96bf902ee84b50e1b5c6 not-for-merge branch 'ck/feature/tc_sram_macro' of https://github.com/pulp-platform/tech_cells_generic +46f5584b0b81be9d9736ff3be3cb5c2c593763a4 not-for-merge branch 'disable_init' of https://github.com/pulp-platform/tech_cells_generic +d630579ee989bcef62414373fca3a4854e504bbb not-for-merge branch 'feature/tc_sram_impl' of https://github.com/pulp-platform/tech_cells_generic +f994e040cf2e2858456b14f8264260240a39bf9c not-for-merge branch 'feature/tc_sram_pwrgate' of https://github.com/pulp-platform/tech_cells_generic +86188d33d0204aa8b3079b33f7e15abfdb0b4272 not-for-merge branch 'features/snitch' of https://github.com/pulp-platform/tech_cells_generic +360fe59db4b37975a3f1b4f33ef385b7f2e0cd92 not-for-merge branch 'fix/fpga_clk_mux' of https://github.com/pulp-platform/tech_cells_generic +c815e3a9673522a01c1192fb543a9fd186a32737 not-for-merge branch 'fix/verilator' of https://github.com/pulp-platform/tech_cells_generic +0fee529f0e39d7ca0ec6076029ef996cd2e26cb3 not-for-merge branch 'fix_bender_targets' of https://github.com/pulp-platform/tech_cells_generic +e0447821bf690fcabbc9fcf0794c19d30b56922e not-for-merge branch 'fix_missing_legacy_file' of https://github.com/pulp-platform/tech_cells_generic +2cf66b7ed589954bcf90fd9c883053264d7aefb6 not-for-merge branch 'fpga' of https://github.com/pulp-platform/tech_cells_generic +313ffafcfb65d7ca80a1c046bf5730848809ef81 not-for-merge branch 'gwt' of https://github.com/pulp-platform/tech_cells_generic +7968dd6e6180df2c644636bc6d2908a49f2190cf not-for-merge branch 'master' of https://github.com/pulp-platform/tech_cells_generic +5912352c9a9461de64e93355436f8efe3b6bc310 not-for-merge branch 'mattia_s' of https://github.com/pulp-platform/tech_cells_generic +e03526018b5e3ce41591514e2e5b61ca2b94d14f not-for-merge branch 'siracusa' of https://github.com/pulp-platform/tech_cells_generic +82de1055df313e25596b116e437b8eb657f368fb not-for-merge branch 'verilator' of https://github.com/pulp-platform/tech_cells_generic +bccdf7bf4d813b12f66fcc18b45300759c7e0fea not-for-merge tag 'gwt_v0.1.11' of https://github.com/pulp-platform/tech_cells_generic +5872932739d21f486c5206c8fcb436ef4c563470 not-for-merge tag 'pulpissimo-v1.0' of https://github.com/pulp-platform/tech_cells_generic +04b7b2735d42e4715c1bc9227027a3d8fb770c08 not-for-merge tag 'v.0.1.16' of https://github.com/pulp-platform/tech_cells_generic +5b1df8611c96460ee8594bee7bcdad611844c3aa not-for-merge tag 'v0.1.0' of https://github.com/pulp-platform/tech_cells_generic +e679a06138bd54b3f852ff61ac7752c58bc4e500 not-for-merge tag 'v0.1.1' of https://github.com/pulp-platform/tech_cells_generic +04b7b2735d42e4715c1bc9227027a3d8fb770c08 not-for-merge tag 'v0.1.16' of https://github.com/pulp-platform/tech_cells_generic +ad374a95828041458020fca5560947fbb327b862 not-for-merge tag 'v0.1.2' of https://github.com/pulp-platform/tech_cells_generic +984c6de3d9b28f426ca752bfdedcd7331e4e84ac not-for-merge tag 'v0.1.3' of https://github.com/pulp-platform/tech_cells_generic +4570531039504676702e4b51ccc43d58eddb1908 not-for-merge tag 'v0.1.4' of https://github.com/pulp-platform/tech_cells_generic +b84fd2e9cce42b25c9e7dcb285c197c0a15bebd2 not-for-merge tag 'v0.1.5' of https://github.com/pulp-platform/tech_cells_generic +04b7b2735d42e4715c1bc9227027a3d8fb770c08 not-for-merge tag 'v0.1.6' of https://github.com/pulp-platform/tech_cells_generic +c333ef001f4fa3fe53f2fec121230d36b28ba870 not-for-merge tag 'v0.2.0' of https://github.com/pulp-platform/tech_cells_generic +627fd6c50733159354df82ea488aeac9b2e076ea not-for-merge tag 'v0.2.1' of https://github.com/pulp-platform/tech_cells_generic +aef525b2dc7670525fc293dfc55f167e371b8c35 not-for-merge tag 'v0.2.10' of https://github.com/pulp-platform/tech_cells_generic +a9cae21902e75b1434328ecf36f85327ba5717de not-for-merge tag 'v0.2.11' of https://github.com/pulp-platform/tech_cells_generic +298b7297d220ba2601d0f24f684f97ff32f61123 not-for-merge tag 'v0.2.12' of https://github.com/pulp-platform/tech_cells_generic +7968dd6e6180df2c644636bc6d2908a49f2190cf not-for-merge tag 'v0.2.13' of https://github.com/pulp-platform/tech_cells_generic +f5919f811921e5fc30c9ddaedd001b8a9b1dab1f not-for-merge tag 'v0.2.2' of https://github.com/pulp-platform/tech_cells_generic +63da15065d2270788634562bb2240514a70f76cc not-for-merge tag 'v0.2.3' of https://github.com/pulp-platform/tech_cells_generic +203038f857158ae4634c47ce0281f402cc2a1344 not-for-merge tag 'v0.2.4' of https://github.com/pulp-platform/tech_cells_generic +7191279a0b5a82d12c75635fcb104cd9e1596683 not-for-merge tag 'v0.2.5' of https://github.com/pulp-platform/tech_cells_generic +9b157726db2709c0e2b95f2caddb4865f8f5144a not-for-merge tag 'v0.2.6' of https://github.com/pulp-platform/tech_cells_generic +ba50faa536feef2689a791307f2686707b0f58e9 not-for-merge tag 'v0.2.7' of https://github.com/pulp-platform/tech_cells_generic +84e9873dd9fb9f40839f83923715e4ded4ff424b not-for-merge tag 'v0.2.8' of https://github.com/pulp-platform/tech_cells_generic +5936b1486e942324063fcf2ccd966344259bca04 not-for-merge tag 'v0.2.9' of https://github.com/pulp-platform/tech_cells_generic +b96bc0082e4ae4ee4ea8f939b10393d9d902147b not-for-merge tag 'vega-0.1.10' of https://github.com/pulp-platform/tech_cells_generic +9af22db664f3cc5e5a917f0ba0b586dd6599ba88 not-for-merge tag 'vega-0.1.5' of https://github.com/pulp-platform/tech_cells_generic +8fb120a4df2057ec68e8ba16ccd2755496f6616c not-for-merge tag 'vega-0.1.6' of https://github.com/pulp-platform/tech_cells_generic +920039730070a537e0858eae476674ae40ece99a not-for-merge tag 'vega-0.1.7' of https://github.com/pulp-platform/tech_cells_generic +67d760a2538d59a47a834ef1b5c93082e44d0c07 not-for-merge tag 'vega-0.1.8' of https://github.com/pulp-platform/tech_cells_generic +d383ac9b4b2ae323dddf5f99495ee1be6aa77b62 not-for-merge tag 'vega-0.1.9' of https://github.com/pulp-platform/tech_cells_generic diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/HEAD b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/HEAD new file mode 100644 index 0000000..cb089cd --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/config b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/config new file mode 100644 index 0000000..2ef11c7 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/config @@ -0,0 +1,7 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true +[remote "origin"] + url = https://github.com/pulp-platform/tech_cells_generic.git + fetch = +refs/heads/*:refs/remotes/origin/* diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/description b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/applypatch-msg.sample b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/applypatch-msg.sample new file mode 100755 index 0000000..a5d7b84 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/commit-msg.sample b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/commit-msg.sample new file mode 100755 index 0000000..b58d118 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/fsmonitor-watchman.sample b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/fsmonitor-watchman.sample new file mode 100755 index 0000000..14ed0aa --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/fsmonitor-watchman.sample @@ -0,0 +1,173 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use IPC::Open2; + +# An example hook script to integrate Watchman +# (https://facebook.github.io/watchman/) with git to speed up detecting +# new and modified files. +# +# The hook is passed a version (currently 2) and last update token +# formatted as a string and outputs to stdout a new update token and +# all files that have been modified since the update token. Paths must +# be relative to the root of the working tree and separated by a single NUL. +# +# To enable this hook, rename this file to "query-watchman" and set +# 'git config core.fsmonitor .git/hooks/query-watchman' +# +my ($version, $last_update_token) = @ARGV; + +# Uncomment for debugging +# print STDERR "$0 $version $last_update_token\n"; + +# Check the hook interface version +if ($version ne 2) { + die "Unsupported query-fsmonitor hook version '$version'.\n" . + "Falling back to scanning...\n"; +} + +my $git_work_tree = get_working_dir(); + +my $retry = 1; + +my $json_pkg; +eval { + require JSON::XS; + $json_pkg = "JSON::XS"; + 1; +} or do { + require JSON::PP; + $json_pkg = "JSON::PP"; +}; + +launch_watchman(); + +sub launch_watchman { + my $o = watchman_query(); + if (is_work_tree_watched($o)) { + output_result($o->{clock}, @{$o->{files}}); + } +} + +sub output_result { + my ($clockid, @files) = @_; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # binmode $fh, ":utf8"; + # print $fh "$clockid\n@files\n"; + # close $fh; + + binmode STDOUT, ":utf8"; + print $clockid; + print "\0"; + local $, = "\0"; + print @files; +} + +sub watchman_clock { + my $response = qx/watchman clock "$git_work_tree"/; + die "Failed to get clock id on '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + + return $json_pkg->new->utf8->decode($response); +} + +sub watchman_query { + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') + or die "open2() failed: $!\n" . + "Falling back to scanning...\n"; + + # In the query expression below we're asking for names of files that + # changed since $last_update_token but not from the .git folder. + # + # To accomplish this, we're using the "since" generator to use the + # recency index to select candidate nodes and "fields" to limit the + # output to file names only. Then we're using the "expression" term to + # further constrain the results. + if (substr($last_update_token, 0, 1) eq "c") { + $last_update_token = "\"$last_update_token\""; + } + my $query = <<" END"; + ["query", "$git_work_tree", { + "since": $last_update_token, + "fields": ["name"], + "expression": ["not", ["dirname", ".git"]] + }] + END + + # Uncomment for debugging the watchman query + # open (my $fh, ">", ".git/watchman-query.json"); + # print $fh $query; + # close $fh; + + print CHLD_IN $query; + close CHLD_IN; + my $response = do {local $/; }; + + # Uncomment for debugging the watch response + # open ($fh, ">", ".git/watchman-response.json"); + # print $fh $response; + # close $fh; + + die "Watchman: command returned no output.\n" . + "Falling back to scanning...\n" if $response eq ""; + die "Watchman: command returned invalid output: $response\n" . + "Falling back to scanning...\n" unless $response =~ /^\{/; + + return $json_pkg->new->utf8->decode($response); +} + +sub is_work_tree_watched { + my ($output) = @_; + my $error = $output->{error}; + if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { + $retry--; + my $response = qx/watchman watch "$git_work_tree"/; + die "Failed to make watchman watch '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + $output = $json_pkg->new->utf8->decode($response); + $error = $output->{error}; + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # close $fh; + + # Watchman will always return all files on the first query so + # return the fast "everything is dirty" flag to git and do the + # Watchman query just to get it over with now so we won't pay + # the cost in git to look up each individual file. + my $o = watchman_clock(); + $error = $output->{error}; + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + output_result($o->{clock}, ("/")); + $last_update_token = $o->{clock}; + + eval { launch_watchman() }; + return 0; + } + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + return 1; +} + +sub get_working_dir { + my $working_dir; + if ($^O =~ 'msys' || $^O =~ 'cygwin') { + $working_dir = Win32::GetCwd(); + $working_dir =~ tr/\\/\//; + } else { + require Cwd; + $working_dir = Cwd::cwd(); + } + + return $working_dir; +} diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/post-update.sample b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/post-update.sample new file mode 100755 index 0000000..ec17ec1 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/pre-applypatch.sample b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/pre-applypatch.sample new file mode 100755 index 0000000..4142082 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/pre-commit.sample b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/pre-commit.sample new file mode 100755 index 0000000..e144712 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --type=bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/pre-merge-commit.sample b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/pre-merge-commit.sample new file mode 100755 index 0000000..399eab1 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/pre-push.sample b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/pre-push.sample new file mode 100755 index 0000000..4ce688d --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/pre-rebase.sample b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/pre-rebase.sample new file mode 100755 index 0000000..6cbef5c --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/pre-receive.sample b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/pre-receive.sample new file mode 100755 index 0000000..a1fd29e --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/prepare-commit-msg.sample b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/prepare-commit-msg.sample new file mode 100755 index 0000000..10fa14c --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/push-to-checkout.sample b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/push-to-checkout.sample new file mode 100755 index 0000000..af5a0c0 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/hooks/push-to-checkout.sample @@ -0,0 +1,78 @@ +#!/bin/sh + +# An example hook script to update a checked-out tree on a git push. +# +# This hook is invoked by git-receive-pack(1) when it reacts to git +# push and updates reference(s) in its repository, and when the push +# tries to update the branch that is currently checked out and the +# receive.denyCurrentBranch configuration variable is set to +# updateInstead. +# +# By default, such a push is refused if the working tree and the index +# of the remote repository has any difference from the currently +# checked out commit; when both the working tree and the index match +# the current commit, they are updated to match the newly pushed tip +# of the branch. This hook is to be used to override the default +# behaviour; however the code below reimplements the default behaviour +# as a starting point for convenient modification. +# +# The hook receives the commit with which the tip of the current +# branch is going to be updated: +commit=$1 + +# It can exit with a non-zero status to refuse the push (when it does +# so, it must not modify the index or the working tree). +die () { + echo >&2 "$*" + exit 1 +} + +# Or it can make any necessary changes to the working tree and to the +# index to bring them to the desired state when the tip of the current +# branch is updated to the new commit, and exit with a zero status. +# +# For example, the hook can simply run git read-tree -u -m HEAD "$1" +# in order to emulate git fetch that is run in the reverse direction +# with git push, as the two-tree form of git read-tree -u -m is +# essentially the same as git switch or git checkout that switches +# branches while keeping the local changes in the working tree that do +# not interfere with the difference between the branches. + +# The below is a more-or-less exact translation to shell of the C code +# for the default behaviour for git's push-to-checkout hook defined in +# the push_to_deploy() function in builtin/receive-pack.c. +# +# Note that the hook will be executed from the repository directory, +# not from the working tree, so if you want to perform operations on +# the working tree, you will have to adapt your code accordingly, e.g. +# by adding "cd .." or using relative paths. + +if ! git update-index -q --ignore-submodules --refresh +then + die "Up-to-date check failed" +fi + +if ! git diff-files --quiet --ignore-submodules -- +then + die "Working directory has unstaged changes" +fi + +# This is a rough translation of: +# +# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX +if git cat-file -e HEAD 2>/dev/null +then + head=HEAD +else + head=$(git hash-object -t tree --stdin &2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero=$(git hash-object --stdin &2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/info/exclude b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/objects/pack/pack-cd5d7297d2efbf71df5c11dc3918bb0b01fdc49c.idx b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/objects/pack/pack-cd5d7297d2efbf71df5c11dc3918bb0b01fdc49c.idx new file mode 100644 index 0000000..b2ca43f Binary files /dev/null and b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/objects/pack/pack-cd5d7297d2efbf71df5c11dc3918bb0b01fdc49c.idx differ diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/objects/pack/pack-cd5d7297d2efbf71df5c11dc3918bb0b01fdc49c.pack b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/objects/pack/pack-cd5d7297d2efbf71df5c11dc3918bb0b01fdc49c.pack new file mode 100644 index 0000000..ade290c Binary files /dev/null and b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/objects/pack/pack-cd5d7297d2efbf71df5c11dc3918bb0b01fdc49c.pack differ diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/add_clk_OR2 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/add_clk_OR2 new file mode 100644 index 0000000..6920a64 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/add_clk_OR2 @@ -0,0 +1 @@ +ef99266fb0c58f897d2ff9237f45cf2df98d8def diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/bender-patch-fpga b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/bender-patch-fpga new file mode 100644 index 0000000..07ea282 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/bender-patch-fpga @@ -0,0 +1 @@ +2d4030b502fd5e05d3d6d64ecdff4defcc09fd21 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/bender-synth-fix b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/bender-synth-fix new file mode 100644 index 0000000..b49d0f0 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/bender-synth-fix @@ -0,0 +1 @@ +bc74aa5b1383660c95e90a0800abb545e917a5f1 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/ck/feature/tc_sram_macro b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/ck/feature/tc_sram_macro new file mode 100644 index 0000000..d94e85b --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/ck/feature/tc_sram_macro @@ -0,0 +1 @@ +7e92d7aae3af501b7f0d96bf902ee84b50e1b5c6 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/disable_init b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/disable_init new file mode 100644 index 0000000..442e04a --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/disable_init @@ -0,0 +1 @@ +46f5584b0b81be9d9736ff3be3cb5c2c593763a4 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/feature/tc_sram_impl b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/feature/tc_sram_impl new file mode 100644 index 0000000..2cee36a --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/feature/tc_sram_impl @@ -0,0 +1 @@ +d630579ee989bcef62414373fca3a4854e504bbb diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/feature/tc_sram_pwrgate b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/feature/tc_sram_pwrgate new file mode 100644 index 0000000..aed2713 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/feature/tc_sram_pwrgate @@ -0,0 +1 @@ +f994e040cf2e2858456b14f8264260240a39bf9c diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/features/snitch b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/features/snitch new file mode 100644 index 0000000..58f69e9 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/features/snitch @@ -0,0 +1 @@ +86188d33d0204aa8b3079b33f7e15abfdb0b4272 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/fix/fpga_clk_mux b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/fix/fpga_clk_mux new file mode 100644 index 0000000..4f91311 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/fix/fpga_clk_mux @@ -0,0 +1 @@ +360fe59db4b37975a3f1b4f33ef385b7f2e0cd92 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/fix/verilator b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/fix/verilator new file mode 100644 index 0000000..1ffa2c2 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/fix/verilator @@ -0,0 +1 @@ +c815e3a9673522a01c1192fb543a9fd186a32737 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/fix_bender_targets b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/fix_bender_targets new file mode 100644 index 0000000..0557a33 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/fix_bender_targets @@ -0,0 +1 @@ +0fee529f0e39d7ca0ec6076029ef996cd2e26cb3 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/fix_missing_legacy_file b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/fix_missing_legacy_file new file mode 100644 index 0000000..ca3227f --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/fix_missing_legacy_file @@ -0,0 +1 @@ +e0447821bf690fcabbc9fcf0794c19d30b56922e diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/fpga b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/fpga new file mode 100644 index 0000000..68c55a5 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/fpga @@ -0,0 +1 @@ +2cf66b7ed589954bcf90fd9c883053264d7aefb6 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/gwt b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/gwt new file mode 100644 index 0000000..0ce6e5d --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/gwt @@ -0,0 +1 @@ +313ffafcfb65d7ca80a1c046bf5730848809ef81 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/master b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/master new file mode 100644 index 0000000..7385e46 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/master @@ -0,0 +1 @@ +7968dd6e6180df2c644636bc6d2908a49f2190cf diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/mattia_s b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/mattia_s new file mode 100644 index 0000000..be8c894 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/mattia_s @@ -0,0 +1 @@ +5912352c9a9461de64e93355436f8efe3b6bc310 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/siracusa b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/siracusa new file mode 100644 index 0000000..1c05ac8 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/siracusa @@ -0,0 +1 @@ +e03526018b5e3ce41591514e2e5b61ca2b94d14f diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/verilator b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/verilator new file mode 100644 index 0000000..7210312 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/remotes/origin/verilator @@ -0,0 +1 @@ +82de1055df313e25596b116e437b8eb657f368fb diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/bender-tmp-7968dd6e6180df2c644636bc6d2908a49f2190cf b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/bender-tmp-7968dd6e6180df2c644636bc6d2908a49f2190cf new file mode 100644 index 0000000..7385e46 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/bender-tmp-7968dd6e6180df2c644636bc6d2908a49f2190cf @@ -0,0 +1 @@ +7968dd6e6180df2c644636bc6d2908a49f2190cf diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/gwt_v0.1.11 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/gwt_v0.1.11 new file mode 100644 index 0000000..11ef91e --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/gwt_v0.1.11 @@ -0,0 +1 @@ +bccdf7bf4d813b12f66fcc18b45300759c7e0fea diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/pulpissimo-v1.0 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/pulpissimo-v1.0 new file mode 100644 index 0000000..efe8f75 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/pulpissimo-v1.0 @@ -0,0 +1 @@ +5872932739d21f486c5206c8fcb436ef4c563470 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v.0.1.16 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v.0.1.16 new file mode 100644 index 0000000..419a961 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v.0.1.16 @@ -0,0 +1 @@ +04b7b2735d42e4715c1bc9227027a3d8fb770c08 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.0 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.0 new file mode 100644 index 0000000..7f69ffa --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.0 @@ -0,0 +1 @@ +5b1df8611c96460ee8594bee7bcdad611844c3aa diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.1 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.1 new file mode 100644 index 0000000..710d226 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.1 @@ -0,0 +1 @@ +e679a06138bd54b3f852ff61ac7752c58bc4e500 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.16 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.16 new file mode 100644 index 0000000..419a961 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.16 @@ -0,0 +1 @@ +04b7b2735d42e4715c1bc9227027a3d8fb770c08 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.2 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.2 new file mode 100644 index 0000000..e3ce509 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.2 @@ -0,0 +1 @@ +ad374a95828041458020fca5560947fbb327b862 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.3 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.3 new file mode 100644 index 0000000..be2808b --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.3 @@ -0,0 +1 @@ +984c6de3d9b28f426ca752bfdedcd7331e4e84ac diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.4 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.4 new file mode 100644 index 0000000..4d6b0f4 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.4 @@ -0,0 +1 @@ +4570531039504676702e4b51ccc43d58eddb1908 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.5 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.5 new file mode 100644 index 0000000..77e79a6 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.5 @@ -0,0 +1 @@ +b84fd2e9cce42b25c9e7dcb285c197c0a15bebd2 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.6 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.6 new file mode 100644 index 0000000..419a961 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.1.6 @@ -0,0 +1 @@ +04b7b2735d42e4715c1bc9227027a3d8fb770c08 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.0 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.0 new file mode 100644 index 0000000..636a7f8 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.0 @@ -0,0 +1 @@ +c333ef001f4fa3fe53f2fec121230d36b28ba870 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.1 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.1 new file mode 100644 index 0000000..8c7b8f1 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.1 @@ -0,0 +1 @@ +627fd6c50733159354df82ea488aeac9b2e076ea diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.10 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.10 new file mode 100644 index 0000000..b0cd1a3 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.10 @@ -0,0 +1 @@ +aef525b2dc7670525fc293dfc55f167e371b8c35 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.11 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.11 new file mode 100644 index 0000000..1e45bb3 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.11 @@ -0,0 +1 @@ +a9cae21902e75b1434328ecf36f85327ba5717de diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.12 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.12 new file mode 100644 index 0000000..c2cc0c8 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.12 @@ -0,0 +1 @@ +298b7297d220ba2601d0f24f684f97ff32f61123 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.13 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.13 new file mode 100644 index 0000000..7385e46 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.13 @@ -0,0 +1 @@ +7968dd6e6180df2c644636bc6d2908a49f2190cf diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.2 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.2 new file mode 100644 index 0000000..4e7441d --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.2 @@ -0,0 +1 @@ +f5919f811921e5fc30c9ddaedd001b8a9b1dab1f diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.3 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.3 new file mode 100644 index 0000000..fd6edc5 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.3 @@ -0,0 +1 @@ +63da15065d2270788634562bb2240514a70f76cc diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.4 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.4 new file mode 100644 index 0000000..f1229aa --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.4 @@ -0,0 +1 @@ +203038f857158ae4634c47ce0281f402cc2a1344 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.5 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.5 new file mode 100644 index 0000000..d377728 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.5 @@ -0,0 +1 @@ +7191279a0b5a82d12c75635fcb104cd9e1596683 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.6 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.6 new file mode 100644 index 0000000..09caf83 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.6 @@ -0,0 +1 @@ +9b157726db2709c0e2b95f2caddb4865f8f5144a diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.7 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.7 new file mode 100644 index 0000000..8b6db7e --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.7 @@ -0,0 +1 @@ +ba50faa536feef2689a791307f2686707b0f58e9 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.8 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.8 new file mode 100644 index 0000000..561216b --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.8 @@ -0,0 +1 @@ +84e9873dd9fb9f40839f83923715e4ded4ff424b diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.9 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.9 new file mode 100644 index 0000000..3a87f6c --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/v0.2.9 @@ -0,0 +1 @@ +5936b1486e942324063fcf2ccd966344259bca04 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/vega-0.1.10 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/vega-0.1.10 new file mode 100644 index 0000000..0315ae2 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/vega-0.1.10 @@ -0,0 +1 @@ +b96bc0082e4ae4ee4ea8f939b10393d9d902147b diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/vega-0.1.5 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/vega-0.1.5 new file mode 100644 index 0000000..a7472e3 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/vega-0.1.5 @@ -0,0 +1 @@ +9af22db664f3cc5e5a917f0ba0b586dd6599ba88 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/vega-0.1.6 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/vega-0.1.6 new file mode 100644 index 0000000..da616e7 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/vega-0.1.6 @@ -0,0 +1 @@ +8fb120a4df2057ec68e8ba16ccd2755496f6616c diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/vega-0.1.7 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/vega-0.1.7 new file mode 100644 index 0000000..ff339f5 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/vega-0.1.7 @@ -0,0 +1 @@ +920039730070a537e0858eae476674ae40ece99a diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/vega-0.1.8 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/vega-0.1.8 new file mode 100644 index 0000000..437ad33 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/vega-0.1.8 @@ -0,0 +1 @@ +67d760a2538d59a47a834ef1b5c93082e44d0c07 diff --git a/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/vega-0.1.9 b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/vega-0.1.9 new file mode 100644 index 0000000..e88e7b1 --- /dev/null +++ b/.bender/git/db/tech_cells_generic-2cbe9d0c0db49477/refs/tags/vega-0.1.9 @@ -0,0 +1 @@ +d383ac9b4b2ae323dddf5f99495ee1be6aa77b62 diff --git a/Bender.lock b/Bender.lock new file mode 100644 index 0000000..57b85f6 --- /dev/null +++ b/Bender.lock @@ -0,0 +1,65 @@ +packages: + cluster_interconnect: + revision: 1284def6c0b7f7e9355eb093d00883ad9dead1b7 + version: null + source: + Git: https://github.com/pulp-platform/cluster_interconnect.git + dependencies: + - common_cells + common_cells: + revision: c27bce39ebb2e6bae52f60960814a2afca7bd4cb + version: 1.37.0 + source: + Git: https://github.com/pulp-platform/common_cells.git + dependencies: + - common_verification + - tech_cells_generic + common_verification: + revision: fa2630f61666f61d9d78451c4d8b4d1ea403944e + version: 0.2.4 + source: + Git: https://github.com/pulp-platform/common_verification.git + dependencies: [] + hci: + revision: null + version: null + source: + Path: /home/ms_dgorfini/Desktop/hci + dependencies: + - cluster_interconnect + - hwpe-stream + - l2_tcdm_hybrid_interco + hwpe-ctrl: + revision: 2926867cafb3fb518a1ae849675f281b79ecab8a + version: null + source: + Git: https://github.com/pulp-platform/hwpe-ctrl.git + dependencies: + - tech_cells_generic + hwpe-stream: + revision: 65c99a4a2f37a79acee800ab0151f67dfb1edef1 + version: 1.8.0 + source: + Git: https://github.com/pulp-platform/hwpe-stream.git + dependencies: + - tech_cells_generic + ibex: + revision: b18f7ef178ed07f5085051f96042c670a919fd5c + version: null + source: + Git: https://github.com/pulp-platform/ibex.git + dependencies: + - tech_cells_generic + l2_tcdm_hybrid_interco: + revision: fa55e72859dcfb117a2788a77352193bef94ff2b + version: 1.0.0 + source: + Git: https://github.com/pulp-platform/L2_tcdm_hybrid_interco.git + dependencies: [] + tech_cells_generic: + revision: 7968dd6e6180df2c644636bc6d2908a49f2190cf + version: 0.2.13 + source: + Git: https://github.com/pulp-platform/tech_cells_generic.git + dependencies: + - common_verification diff --git a/Bender.yml b/Bender.yml index bd4a371..c28fe17 100644 --- a/Bender.yml +++ b/Bender.yml @@ -4,9 +4,11 @@ package: - "Francesco Conti " dependencies: - hwpe-stream: { git: "https://github.com/pulp-platform/hwpe-stream.git", version: 1.6 } - hci: { git: "https://github.com/pulp-platform/hci.git", version: 1.0.6 } - hwpe-ctrl: { git: "https://github.com/pulp-platform/hwpe-ctrl.git", version: 1.6 } + hwpe-stream: { git: "https://github.com/pulp-platform/hwpe-stream.git", version: 1.8.0 } + hci: { path: "/home/ms_dgorfini/Desktop/hci" } + #hci: { git: "https://github.com/MastroDiego/hci.git" , rev: 066c7ce } + hwpe-ctrl: { git: "https://github.com/pulp-platform/hwpe-ctrl.git" , rev: 2926867cafb3fb518a1ae849675f281b79ecab8a } # branch: master + ibex : { git: "https://github.com/pulp-platform/ibex.git" , rev: pulpissimo-v6.1.2 } sources: @@ -20,3 +22,9 @@ sources: - rtl/datamover_streamer.sv # Level 2 - rtl/datamover_top.sv + # Level 3 + - rtl/datamover_top_wrap.sv + - target: test + files: + - tb/tb_dummy_memory.sv + - tb/tb_datamover_top.sv diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..69ab878 --- /dev/null +++ b/Makefile @@ -0,0 +1,150 @@ +# Copyright 2023 ETH Zurich and University of Bologna. +# Licensed under the Apache License, Version 2.0, see LICENSE for details. +# SPDX-License-Identifier: Apache-2.0 +# +# Andrea Belano +# + +mkfile_path := $(dir $(abspath $(firstword $(MAKEFILE_LIST)))) +SW ?= $(mkfile_path)sw +BUILD_DIR ?= $(mkfile_path)work +QUESTA ?= #questa-2020.1 +PYTHON ?= python +ISA ?= riscv +ARCH ?= rv +XLEN ?= 32 +XTEN ?= imc + +BENDER ?= $(mkfile_path)/bender +TEST ?= tb_datamover.c + +TEST_SRCS := $(SW)/$(TEST) + +compile_script ?= $(mkfile_path)scripts/compile.tcl +compile_script_synth ?= $(mkfile_path)scripts/synth_compile.tcl +compile_flag ?= -suppress 2583 -suppress 13314 -suppress 8386 + +sim_flags ?= -suppress 3009 + +bender_defs += -D COREV_ASSERT_OFF + +sim_targs += -t rtl +sim_targs += -t test +bender_targs += -t cv32e40p_exclude_tracer +sim_targs += -t test + +INI_PATH = $(mkfile_path)/modelsim.ini +WORK_PATH = $(BUILD_DIR) + +tb := tb_datamover_top + +gui ?= 0 + +PROB_STALL ?= 0.0 +OUTPUT_SIZE ?= 2 + +# Include directories +INC += -I$(SW) +INC += -I$(SW)/inc +INC += -I$(SW)/utils + +BOOTSCRIPT := $(SW)/kernel/crt0.S +LINKSCRIPT := $(SW)/kernel/link.ld + +CC=$(ISA)$(XLEN)-unknown-elf-gcc +LD=$(CC) +OBJDUMP=$(ISA)$(XLEN)-unknown-elf-objdump +CC_OPTS=-march=$(ARCH)$(XLEN)$(XTEN) -mabi=ilp32 -D__$(ISA)__ -O2 -g -Wextra -Wall -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wundef -fdata-sections -ffunction-sections -MMD -MP +LD_OPTS=-march=$(ARCH)$(XLEN)$(XTEN) -mabi=ilp32 -D__$(ISA)__ -MMD -MP -nostartfiles -nostdlib -Wl,--gc-sections + +# Setup build object dirs +CRT=$(BUILD_DIR)/crt0.o +OBJ=$(BUILD_DIR)/verif.o +BIN=$(BUILD_DIR)/verif +DUMP=$(BUILD_DIR)/verif.dump + +STIM_INSTR=$(mkfile_path)/stim_instr.txt +STIM_DATA=$(mkfile_path)/stim_data.txt + +# Build implicit rules +$(STIM_INSTR) $(STIM_DATA): $(BIN) + objcopy --srec-len 1 --output-target=srec $(BIN) $(BIN).s19 + scripts/parse_s19.pl $(BIN).s19 > $(BIN).txt + python scripts/s19tomem.py $(BIN).txt $(STIM_INSTR) $(STIM_DATA) + +$(BIN): $(CRT) $(OBJ) + $(LD) $(LD_OPTS) -o $(BIN) $(CRT) $(OBJ) -T$(LINKSCRIPT) + +$(CRT): $(BUILD_DIR) + $(CC) $(CC_OPTS) -c $(BOOTSCRIPT) -o $(CRT) + +$(OBJ): $(TEST_SRCS) + $(CC) $(CC_OPTS) -c $(TEST_SRCS) $(FLAGS) $(INC) -o $(OBJ) + +$(BUILD_DIR): + mkdir -p $(BUILD_DIR) + +# Generate instructions and data stimuli +sw-build: $(STIM_INSTR) $(STIM_DATA) dis + +sw-clean: + rm -f $(BUILD_DIR)/*.o + +sw-all: sw-clean sw-build + +dis: + $(OBJDUMP) -d $(BIN) > $(DUMP) + +# Run the simulation +run: +ifeq ($(gui), 0) + $(QUESTA) vsim -c vopt_tb -do "run -a" \ + -gPROB_STALL=$(PROB_STALL) \ + -gOUTPUT_SIZE=$(OUTPUT_SIZE) \ + $(sim_flags) +else + $(QUESTA) vsim vopt_tb \ + -do "add log -r sim:/$(tb)/*" \ + -gPROB_STALL=$(PROB_STALL) \ + -gOUTPUT_SIZE=$(OUTPUT_SIZE) \ + $(sim_flags) +endif + +bender: + curl --proto '=https' \ + --tlsv1.2 https://pulp-platform.github.io/bender/init -sSf | sh -s + +update-ips: + $(BENDER) update + $(BENDER) script vsim \ + --vlog-arg="$(compile_flag)" \ + --vcom-arg="-pedanticerrors" \ + $(bender_targs) $(bender_defs) \ + $(sim_targs) $(sim_deps) \ + > ${compile_script} + +synth-ips: + $(BENDER) update + $(BENDER) script synopsys \ + $(common_targs) $(common_defs) \ + $(synth_targs) $(synth_defs) \ + > ${compile_script_synth} + +hw-opt: + $(QUESTA) vopt +acc=npr -o vopt_tb $(tb) -floatparameters+$(tb) -work $(BUILD_DIR) + +hw-compile: + $(QUESTA) vsim -c +incdir+$(UVM_HOME) -do 'quit -code [source $(compile_script)]' + +hw-lib: + @touch modelsim.ini + @mkdir -p $(BUILD_DIR) + @$(QUESTA) vlib $(BUILD_DIR) + @$(QUESTA) vmap work $(BUILD_DIR) + @chmod +w modelsim.ini + +hw-clean: + rm -rf transcript + rm -rf modelsim.ini + +hw-all: hw-clean hw-lib hw-compile hw-opt diff --git a/bender b/bender new file mode 100755 index 0000000..dbb8fe0 Binary files /dev/null and b/bender differ diff --git a/modelsim.ini b/modelsim.ini new file mode 100644 index 0000000..5630001 --- /dev/null +++ b/modelsim.ini @@ -0,0 +1,2 @@ +[library] +work = /home/ms_dgorfini/Desktop/hwpe-datamover-example/work diff --git a/rtl/datamover_package.sv b/rtl/datamover_package.sv index 30784b2..437ae9e 100644 --- a/rtl/datamover_package.sv +++ b/rtl/datamover_package.sv @@ -25,4 +25,15 @@ package datamover_package; logic tcdm_fifo_empty; } flags_streamer_t; + typedef struct packed { + hci_package::hci_streamer_v2_ctrl_t data_in_source_ctrl; + hci_package::hci_streamer_v2_ctrl_t data_out_sink_ctrl; + } ctrl_streamer_v2_t; + + typedef struct packed { + hci_package::hci_streamer_v2_flags_t data_in_source_flags; + hci_package::hci_streamer_v2_flags_t data_out_sink_flags; + logic tcdm_fifo_empty; + } flags_streamer_v2_t; + endpackage diff --git a/rtl/datamover_streamer.sv b/rtl/datamover_streamer.sv index d7e6b91..26ef521 100644 --- a/rtl/datamover_streamer.sv +++ b/rtl/datamover_streamer.sv @@ -13,15 +13,18 @@ /* * Authors: Francesco Conti + * Andrea Belano */ +`include "hci_helpers.svh" + import hwpe_stream_package::*; import hci_package::*; import datamover_package::*; module datamover_streamer #( - parameter int unsigned TCDM_FIFO_DEPTH = 2, - parameter int unsigned BW = 32 + parameter int unsigned TCDM_FIFO_DEPTH = 0, + parameter hci_size_parameter_t `HCI_SIZE_PARAM(tcdm) = '0 ) ( // global signals input logic clk_i, @@ -35,39 +38,44 @@ module datamover_streamer #( // output data stream + handshake hwpe_stream_intf_stream.sink data_out, // TCDM ports - hci_core_intf.master tcdm, + hci_core_intf.initiator tcdm, // control channel - input ctrl_streamer_t ctrl_i, - output flags_streamer_t flags_o + input ctrl_streamer_v2_t ctrl_i, + output flags_streamer_v2_t flags_o ); - // We "sacrifice" 1 word of memory interface bandwidth in order to support - // realignment at a byte boundary. - localparam BW_ALIGNED = BW-32; + localparam int unsigned DW = `HCI_SIZE_GET_DW(tcdm); + localparam int unsigned AW = `HCI_SIZE_GET_AW(tcdm); + localparam int unsigned BW = `HCI_SIZE_GET_BW(tcdm); + localparam int unsigned UW = `HCI_SIZE_GET_UW(tcdm); + localparam int unsigned IW = `HCI_SIZE_GET_IW(tcdm); + localparam int unsigned EW = `HCI_SIZE_GET_EW(tcdm); + localparam int unsigned EHW = `HCI_SIZE_GET_EHW(tcdm); + flags_fifo_t tcdm_fifo_flags; // "Virtual" HCI TCDM interfaces. Interface [0] maps loads (coming from // and HCI source) and interface [1] maps stores (coming from an HCI sink). hci_core_intf #( - .DW ( BW ) + .DW ( DW ) ) virt_tcdm [1:0] ( .clk ( clk_i ) ); // "Virtual" TCDM interface, used to embody data after mixing loads and - // stores, but before the TCDM FIFO (if present). + // stores, but before the TCDM FIFO (if present). Notice this is technically + // an array of interfaces, with one single instance inside. This is + // useful because HCI muxes expect an array of output interfaces. hci_core_intf #( - .DW ( BW ) - ) tcdm_prefifo ( + .DW ( DW ) + ) tcdm_prefifo [0:0] ( .clk ( clk_i ) ); // "Virtual" TCDM interface, used to embody data after the TCDM FIFO - // (if present) but before the load filter. Notice this is technically - // an array of interfaces, with one single instance inside. This is - // useful because HCI muxes expect an array of output interfaces. + // (if present) but before the load filter. hci_core_intf #( - .DW ( BW ) + .DW ( DW ) ) tcdm_prefilter [0:0] ( .clk ( clk_i ) ); @@ -75,8 +83,8 @@ module datamover_streamer #( // Standard HCI core source. The DATA_WIDTH parameter is referred to // the HWPE-Stream, since the source also performs realignment, it will // expose a 32-bit larger HCI TCDM interface. - hci_core_source #( - .DATA_WIDTH ( BW ) + hci_core_source_v2 #( + .`HCI_SIZE_PARAM(tcdm) ( `HCI_SIZE_PARAM(tcdm) ) ) i_source ( .clk_i ( clk_i ), .rst_ni ( rst_ni ), @@ -92,8 +100,8 @@ module datamover_streamer #( // Standard HCI core sink. The DATA_WIDTH parameter is referred to // the HWPE-Stream, since the sink also performs realignment, it will // expose a 32-bit larger HCI TCDM interface. - hci_core_sink #( - .DATA_WIDTH ( BW ) + hci_core_sink_v2 #( + .`HCI_SIZE_PARAM(tcdm) ( `HCI_SIZE_PARAM(tcdm) ) ) i_sink ( .clk_i ( clk_i ), .rst_ni ( rst_ni ), @@ -106,59 +114,42 @@ module datamover_streamer #( .flags_o ( flags_o.data_out_sink_flags ) ); + hci_core_mux_dynamic #( + .NB_IN_CHAN ( 2 ), + .NB_OUT_CHAN ( 1 ), + .`HCI_SIZE_PARAM(in) ( `HCI_SIZE_PARAM(tcdm) ) + ) i_ld_st_mux ( + .clk_i ( clk_i ), + .rst_ni ( rst_ni ), + .clear_i ( clear_i ), + .in ( virt_tcdm ), + .out ( tcdm_prefifo ) + ); + generate if(TCDM_FIFO_DEPTH > 0) begin : use_fifo_gen - - // TCDM muxing is not possible in general before a FIFO, because - // there is no standard way to couple a response with the channel - // that requested it. Here we bypass the issue by using a mixer - // that is specifically designed for a LOAD-exclusive channel and - // a STORE-exclusive channel. It will couple any valid response to - // the LOAD channel exclusively. - hci_core_load_store_mixer #( - .DW ( BW ) - ) i_ld_st_mux_static ( - .clk_i ( clk_i ), - .rst_ni ( rst_ni ), - .clear_i ( clear_i ), - .in_load ( virt_tcdm[0] ), - .in_store ( virt_tcdm[1] ), - .out ( tcdm_prefifo ) - ); - // The HCI core FIFO the request path from the response path, easing // timing closure when integrating the accelerator in a cluster. hci_core_fifo #( .FIFO_DEPTH ( TCDM_FIFO_DEPTH ), - .DW ( BW ), - .AW ( 32 ), - .OW ( 1 ) + .`HCI_SIZE_PARAM(tcdm_initiator) ( `HCI_SIZE_PARAM(tcdm) ) ) i_tcdm_fifo ( - .clk_i ( clk_i ), - .rst_ni ( rst_ni ), - .clear_i ( clear_i ), - .flags_o ( tcdm_fifo_flags ), - .tcdm_slave ( tcdm_prefifo ), - .tcdm_master ( tcdm_prefilter[0] ) + .clk_i ( clk_i ), + .rst_ni ( rst_ni ), + .clear_i ( clear_i ), + .flags_o ( tcdm_fifo_flags ), + .tcdm_target ( tcdm_prefifo[0] ), + .tcdm_initiator ( tcdm_prefilter[0] ) ); end else begin : dont_use_fifo_gen - - // If not using a FIFO, it is possible to use a standard mux instead - // of a mixer. - hci_core_mux_dynamic #( - .NB_IN_CHAN ( 2 ), - .NB_OUT_CHAN ( 1 ), - .DW ( BW ) - ) i_ld_st_mux_static ( - .clk_i ( clk_i ), - .rst_ni ( rst_ni ), - .clear_i ( clear_i ), - .in ( virt_tcdm ), - .out ( tcdm_prefilter ) + // If not using a FIFO, just assign the streams + hci_core_assign i_tcdm_assign ( + .tcdm_target ( tcdm_prefifo[0] ), + .tcdm_initiator ( tcdm_prefilter[0] ) ); - assign tcdm_fifo_flags.empty = 1'b1; + assign tcdm_fifo_flags.empty = 1'b1; end endgenerate @@ -166,14 +157,16 @@ module datamover_streamer #( // cluster may generate even when the TCDM access is a write. These // pollute HCI TCDM FIFOs and mixers, and it is better to remove them // altogether. - hci_core_r_valid_filter i_tcdm_filter ( - .clk_i ( clk_i ), - .rst_ni ( rst_ni ), - .clear_i ( clear_i ), - .enable_i ( 1'b1 ), - .tcdm_slave ( tcdm_prefilter[0] ), - .tcdm_master ( tcdm ) + hci_core_r_valid_filter #( + .`HCI_SIZE_PARAM(tcdm_target) ( `HCI_SIZE_PARAM(tcdm) ) + ) i_tcdm_filter ( + .clk_i ( clk_i ), + .rst_ni ( rst_ni ), + .clear_i ( clear_i ), + .enable_i ( 1'b1 ), + .tcdm_target ( tcdm_prefilter[0] ), + .tcdm_initiator ( tcdm ) ); assign flags_o.tcdm_fifo_empty = tcdm_fifo_flags.empty; -endmodule // datamover_streamer +endmodule // datamover_streamer nuovo \ No newline at end of file diff --git a/rtl/datamover_top.sv b/rtl/datamover_top.sv index 2bbc5e4..56ba66b 100644 --- a/rtl/datamover_top.sv +++ b/rtl/datamover_top.sv @@ -19,11 +19,13 @@ import hwpe_ctrl_package::*; import hci_package::*; import datamover_package::*; +`include "hci_helpers.svh" + module datamover_top #( parameter int unsigned ID = 10, - parameter int unsigned BW = 288, parameter int unsigned N_CORES = 8, - parameter int unsigned N_CONTEXT = 2 + parameter int unsigned N_CONTEXT = 2, + parameter hci_size_parameter_t `HCI_SIZE_PARAM(tcdm) = '0 ) ( // global signals input logic clk_i, @@ -32,25 +34,33 @@ module datamover_top #( // events output logic [N_CORES-1:0][1:0] evt_o, // tcdm master ports - hci_core_intf.master tcdm, + hci_core_intf.initiator tcdm, // periph slave port hwpe_ctrl_intf_periph.slave periph ); + localparam int unsigned DW = `HCI_SIZE_GET_DW(tcdm); + localparam int unsigned AW = `HCI_SIZE_GET_AW(tcdm); + localparam int unsigned BW = `HCI_SIZE_GET_BW(tcdm); + localparam int unsigned UW = `HCI_SIZE_GET_UW(tcdm); + localparam int unsigned IW = `HCI_SIZE_GET_IW(tcdm); + localparam int unsigned EW = `HCI_SIZE_GET_EW(tcdm); + localparam int unsigned EHW = `HCI_SIZE_GET_EHW(tcdm); + // We "sacrifice" 1 word of memory interface bandwidth in order to support // realignment at a byte boundary. - localparam BW_ALIGNED = BW-32; + localparam DW_ALIGNED = DW-32; // State for the FSM declared directly in datamover_top. - typedef enum { DM_IDLE, DM_STARTING, DM_WORKING, DM_FINISHED } dm_state; + typedef enum { DM_IDLE, DM_STARTING, DM_STARTING2, DM_STARTING3, DM_WORKING, DM_WORKING2, DM_WORKING3, DM_FINISHED, DM_WAIT, DM_WAIT2} dm_state; dm_state cs, ns; // Software-generated clear signal. logic clear; // These are the bit fields used to control the streamer. - ctrl_streamer_t streamer_ctrl, streamer_ctrl_cfg; - flags_streamer_t streamer_flags; + ctrl_streamer_v2_t streamer_ctrl, streamer_ctrl_cfg, streamer_ctrl_cfg2, streamer_ctrl_cfg3; + flags_streamer_v2_t streamer_flags; // These are the bit fields used to propagate flags from/to the peripheral // interconnect slave interface. @@ -63,23 +73,21 @@ module datamover_top #( // bandwidth. The additional 32 bits of memory bandwidth are used to // support access to non-word-aligned data packets. hwpe_stream_intf_stream #( - .DATA_WIDTH(BW_ALIGNED) + .DATA_WIDTH(DW_ALIGNED) ) data_in ( .clk(clk_i) ); hwpe_stream_intf_stream #( - .DATA_WIDTH(BW_ALIGNED) + .DATA_WIDTH(DW_ALIGNED) ) data_out ( .clk(clk_i) ); - - // The streamer exposes on the memory side a single TCDM 288-bit interface +// The streamer exposes on the memory side a single TCDM 288-bit interface // meant to be directly plugged into an Heterogeneous Cluster Interconnect. // On the accelerator side, it exposes an outgoing data in stream and // an incoming data out HWPE-Streams, each 256-bit wide. datamover_streamer #( - .BW ( BW ), - .TCDM_FIFO_DEPTH ( 0 ) + .`HCI_SIZE_PARAM(tcdm) (`HCI_SIZE_PARAM(tcdm)) ) i_streamer ( .clk_i ( clk_i ), .rst_ni ( rst_ni ), @@ -97,7 +105,7 @@ module datamover_top #( // a FIFO copying the data in stream into the data out one! datamover_engine #( .FIFO_DEPTH ( 4 ), - .BW_ALIGNED ( BW_ALIGNED ) + .BW_ALIGNED ( DW_ALIGNED ) ) i_engine ( .clk_i ( clk_i ), .rst_ni ( rst_ni ), @@ -112,10 +120,10 @@ module datamover_top #( // in the default configuration, it provides 2 contexts with 13 registers // each, which are exposed into `reg_file.hwpe_params` hwpe_ctrl_slave #( - .N_CORES ( 8 ), - .N_CONTEXT ( 2 ), - .N_IO_REGS ( 13 ), - .N_GENERIC_REGS ( 8 ), + .N_CORES ( N_CORES ), + .N_CONTEXT ( N_CONTEXT ), + .N_IO_REGS ( 52 ), + .N_GENERIC_REGS ( 0 ), .ID_WIDTH ( ID ) ) i_slave ( .clk_i ( clk_i ), @@ -128,44 +136,95 @@ module datamover_top #( ); // Datamover FSM: sequential process. + logic [1:0] delay_counter; + always_ff @(posedge clk_i or negedge rst_ni) - begin : fsm_seq - if(~rst_ni) - cs <= DM_IDLE; - else if(clear) - cs <= DM_IDLE; - else - cs <= ns; +begin : fsm_seq + if (~rst_ni) begin + cs <= DM_IDLE; + delay_counter <= 2'b0; + end else if (clear) begin + cs <= DM_IDLE; + delay_counter <= 2'b0; + end else begin + cs <= ns; + if (cs == DM_WAIT || cs == DM_WAIT2 ) + delay_counter <= delay_counter + 1; + else + delay_counter <= 2'b0; end +end + + // Datamover FSM: combinational next-state calculation process. always_comb begin : fsm_ns_comb ns = cs; - if(cs == DM_IDLE) begin - if(slave_flags.start) + case (cs) + DM_IDLE: begin + if (slave_flags.start) ns = DM_STARTING; end - else if(cs == DM_STARTING) begin + DM_STARTING: begin + ns = DM_WAIT; + end + DM_WAIT: begin + if (delay_counter == 2'b01) // 2 cicli completati + ns = DM_STARTING2; + end + DM_STARTING2: begin ns = DM_WORKING; end - else if(cs == DM_WORKING) begin - if ((streamer_flags.data_out_sink_flags.done | streamer_flags.data_out_sink_flags.ready_start) & (streamer_flags.data_in_source_flags.done | streamer_flags.data_in_source_flags.ready_start) & streamer_flags.tcdm_fifo_empty) + + DM_WORKING: begin + if ((streamer_flags.data_out_sink_flags.done) & streamer_flags.tcdm_fifo_empty) + ns = DM_WORKING2; + end + DM_WORKING2: begin + if ((streamer_flags.data_out_sink_flags.done) & streamer_flags.tcdm_fifo_empty & streamer_flags.data_in_source_flags.ready & streamer_flags.data_out_sink_flags.ready) + ns = DM_WAIT2; + end + + DM_WAIT2: begin + if (delay_counter == 2'b01) // 2 cicli completati + ns = DM_STARTING3; + end + + DM_STARTING3: begin + ns = DM_WORKING3; + end + + DM_WORKING3: begin + if ((streamer_flags.data_out_sink_flags.done) & streamer_flags.tcdm_fifo_empty) ns = DM_FINISHED; end - else begin + default: begin ns = DM_IDLE; end + endcase end // Datamover FSM: combinational output calculation process. always_comb begin : fsm_out_comb slave_ctrl = '0; - streamer_ctrl = streamer_ctrl_cfg; + streamer_ctrl.data_in_source_ctrl.valid = 1'b0; + streamer_ctrl.data_out_sink_ctrl.valid = 1'b0; if(cs == DM_STARTING) begin - streamer_ctrl.data_in_source_ctrl.req_start = 1'b1; - streamer_ctrl.data_out_sink_ctrl.req_start = 1'b1; + streamer_ctrl = streamer_ctrl_cfg; + streamer_ctrl.data_in_source_ctrl.valid = 1'b1; + streamer_ctrl.data_out_sink_ctrl.valid = 1'b1; + end + if(cs == DM_STARTING2) begin + streamer_ctrl = streamer_ctrl_cfg2; + streamer_ctrl.data_in_source_ctrl.valid = 1'b1; + streamer_ctrl.data_out_sink_ctrl.valid = 1'b1; + end + if(cs == DM_STARTING3) begin + streamer_ctrl = streamer_ctrl_cfg3; + streamer_ctrl.data_in_source_ctrl.valid = 1'b1; + streamer_ctrl.data_out_sink_ctrl.valid = 1'b1; end else if (cs == DM_FINISHED) begin slave_ctrl.done = 1'b1; @@ -195,10 +254,47 @@ module datamover_top #( streamer_ctrl_cfg.data_out_sink_ctrl.addressgen_ctrl.d1_len = reg_file.hwpe_params[10]; streamer_ctrl_cfg.data_out_sink_ctrl.addressgen_ctrl.d1_stride = reg_file.hwpe_params[11]; streamer_ctrl_cfg.data_out_sink_ctrl.addressgen_ctrl.d2_stride = reg_file.hwpe_params[12]; + + streamer_ctrl_cfg2 = '0; + streamer_ctrl_cfg2.data_in_source_ctrl.addressgen_ctrl.dim_enable_1h = '1; + streamer_ctrl_cfg2.data_out_sink_ctrl.addressgen_ctrl.dim_enable_1h = '1; + streamer_ctrl_cfg2.data_in_source_ctrl.addressgen_ctrl.base_addr = reg_file.hwpe_params[13]; + streamer_ctrl_cfg2.data_out_sink_ctrl.addressgen_ctrl.base_addr = reg_file.hwpe_params[14]; + streamer_ctrl_cfg2.data_in_source_ctrl.addressgen_ctrl.tot_len = reg_file.hwpe_params[15]; + streamer_ctrl_cfg2.data_out_sink_ctrl.addressgen_ctrl.tot_len = reg_file.hwpe_params[15]; + streamer_ctrl_cfg2.data_in_source_ctrl.addressgen_ctrl.d0_len = reg_file.hwpe_params[16]; + streamer_ctrl_cfg2.data_in_source_ctrl.addressgen_ctrl.d0_stride = reg_file.hwpe_params[17]; + streamer_ctrl_cfg2.data_in_source_ctrl.addressgen_ctrl.d1_len = reg_file.hwpe_params[18]; + streamer_ctrl_cfg2.data_in_source_ctrl.addressgen_ctrl.d1_stride = reg_file.hwpe_params[19]; + streamer_ctrl_cfg2.data_in_source_ctrl.addressgen_ctrl.d2_stride = reg_file.hwpe_params[20]; + streamer_ctrl_cfg2.data_out_sink_ctrl.addressgen_ctrl.d0_len = reg_file.hwpe_params[21]; + streamer_ctrl_cfg2.data_out_sink_ctrl.addressgen_ctrl.d0_stride = reg_file.hwpe_params[22]; + streamer_ctrl_cfg2.data_out_sink_ctrl.addressgen_ctrl.d1_len = reg_file.hwpe_params[23]; + streamer_ctrl_cfg2.data_out_sink_ctrl.addressgen_ctrl.d1_stride = reg_file.hwpe_params[24]; + streamer_ctrl_cfg2.data_out_sink_ctrl.addressgen_ctrl.d2_stride = reg_file.hwpe_params[25]; + + streamer_ctrl_cfg3 = '0; + streamer_ctrl_cfg3.data_in_source_ctrl.addressgen_ctrl.dim_enable_1h = '1; + streamer_ctrl_cfg3.data_out_sink_ctrl.addressgen_ctrl.dim_enable_1h = '1; + streamer_ctrl_cfg3.data_in_source_ctrl.addressgen_ctrl.base_addr = reg_file.hwpe_params[26]; + streamer_ctrl_cfg3.data_out_sink_ctrl.addressgen_ctrl.base_addr = reg_file.hwpe_params[27]; + streamer_ctrl_cfg3.data_in_source_ctrl.addressgen_ctrl.tot_len = reg_file.hwpe_params[28]; + streamer_ctrl_cfg3.data_out_sink_ctrl.addressgen_ctrl.tot_len = reg_file.hwpe_params[28]; + streamer_ctrl_cfg3.data_in_source_ctrl.addressgen_ctrl.d0_len = reg_file.hwpe_params[29]; + streamer_ctrl_cfg3.data_in_source_ctrl.addressgen_ctrl.d0_stride = reg_file.hwpe_params[30]; + streamer_ctrl_cfg3.data_in_source_ctrl.addressgen_ctrl.d1_len = reg_file.hwpe_params[31]; + streamer_ctrl_cfg3.data_in_source_ctrl.addressgen_ctrl.d1_stride = reg_file.hwpe_params[32]; + streamer_ctrl_cfg3.data_in_source_ctrl.addressgen_ctrl.d2_stride = reg_file.hwpe_params[33]; + streamer_ctrl_cfg3.data_out_sink_ctrl.addressgen_ctrl.d0_len = reg_file.hwpe_params[34]; + streamer_ctrl_cfg3.data_out_sink_ctrl.addressgen_ctrl.d0_stride = reg_file.hwpe_params[35]; + streamer_ctrl_cfg3.data_out_sink_ctrl.addressgen_ctrl.d1_len = reg_file.hwpe_params[36]; + streamer_ctrl_cfg3.data_out_sink_ctrl.addressgen_ctrl.d1_stride = reg_file.hwpe_params[37]; + streamer_ctrl_cfg3.data_out_sink_ctrl.addressgen_ctrl.d2_stride = reg_file.hwpe_params[38]; + end // Bind the output event, which is propagated to the event unit and used // to implement HWPE datamover barriers. - assign evt_o = slave_flags.evt[7:0]; + assign evt_o = slave_flags.evt[N_CORES-1:0]; endmodule // datamover_top diff --git a/rtl/datamover_top_wrap.sv b/rtl/datamover_top_wrap.sv new file mode 100644 index 0000000..32acbaa --- /dev/null +++ b/rtl/datamover_top_wrap.sv @@ -0,0 +1,196 @@ +/* + * datamover_top_wrap.sv + * Francesco Conti + * + * Copyright (C) 2017-2023 ETH Zurich, University of Bologna + * All rights reserved. + */ + +`include "hci_helpers.svh" + +module datamover_top_wrap + import datamover_package::*; + import hwpe_ctrl_package::*; + import hci_package::*; +#( +`ifndef SYNTHESIS + parameter bit WAIVE_RQ3_ASSERT = 1'b0, + parameter bit WAIVE_RQ4_ASSERT = 1'b0, + parameter bit WAIVE_RSP3_ASSERT = 1'b0, + parameter bit WAIVE_RSP5_ASSERT = 1'b0, +`endif + parameter int unsigned N_CORES = 2 , + parameter int unsigned ID = 10 , + parameter int unsigned DW = 288 , + parameter int unsigned MP = DW / 32 +) +( + // global signals + input logic clk_i, + input logic rst_ni, + input logic test_mode_i, + // events + output logic [N_CORES-1:0][REGFILE_N_EVT-1:0] evt_o, + // tcdm master ports + output logic [MP-1:0] tcdm_req_o, + input logic [MP-1:0] tcdm_gnt_i, + output logic [MP-1:0][31:0] tcdm_add_o, + output logic [MP-1:0] tcdm_wen_o, + output logic [MP-1:0][3:0] tcdm_be_o, + output logic [MP-1:0][31:0] tcdm_data_o, + output logic [MP-1:0] tcdm_r_ready_o, + output logic [MP-1:0][ 7:0] tcdm_id_o, + input logic [MP-1:0][31:0] tcdm_r_data_i, + input logic [MP-1:0] tcdm_r_valid_i, + input logic tcdm_r_opc_i, + input logic tcdm_r_user_i, + input logic [ 7:0] tcdm_r_id_i, + // periph slave port + input logic periph_req_i, + output logic periph_gnt_o, + input logic [31:0] periph_add_i, + input logic periph_wen_i, + input logic [3:0] periph_be_i, + input logic [31:0] periph_data_i, + input logic [ID-1:0] periph_id_i, + output logic [31:0] periph_r_data_o, + output logic periph_r_valid_o, + output logic [ID-1:0] periph_r_id_o +); + + localparam hci_size_parameter_t `HCI_SIZE_PARAM(tcdm) = '{ + DW: DW, + AW: DEFAULT_AW, + BW: DEFAULT_BW, + UW: DEFAULT_UW, + IW: DEFAULT_IW, + EW: DEFAULT_EW, + EHW: DEFAULT_EHW + }; + + `HCI_INTF(tcdm, clk_i); + + hwpe_ctrl_intf_periph #( + .ID_WIDTH ( ID ) + ) periph ( + .clk ( clk_i ) + ); + + logic [N_CORES-1:0][1:0] evt; + + `ifndef SYNTHESIS + for(genvar ii=0; ii> {tcdm_r_data_i} }; + assign tcdm.r_opc = tcdm_r_opc_i; + assign tcdm.r_user = tcdm_r_user_i; + assign tcdm.r_id = tcdm_r_id_i; + + assign periph.req = periph_req_i; + assign periph.add = periph_add_i; + assign periph.wen = periph_wen_i; + assign periph.be = periph_be_i; + assign periph.data = periph_data_i; + assign periph.id = periph_id_i; + assign periph_gnt_o = periph.gnt; + assign periph_r_data_o = periph.r_data; + assign periph_r_valid_o = periph.r_valid; + assign periph_r_id_o = periph.r_id; + + assign evt_o = evt; + `else + always_ff @(posedge clk_i, negedge rst_ni) begin + if (~rst_ni) begin + // TCDM port + for (int ii = 0; ii < MP; ii++) begin + tcdm_req_o [ii] <= '0; + tcdm_add_o [ii] <= '0; + tcdm_wen_o [ii] <= '0; + tcdm_be_o [ii] <= '0; + tcdm_data_o [ii] <= '0; + tcdm_r_ready_o [ii] <= '0; + tcdm_id_o [ii] <= '0; + end + + tcdm.gnt <= '0; + tcdm.r_valid <= '0; + tcdm.r_data <= '0; + tcdm.r_opc <= '0; + tcdm.r_user <= '0; + tcdm.r_id <= '0; + + // Control port + periph.req <= '0; + periph.add <= '0; + periph.wen <= '0; + periph.be <= '0; + periph.data <= '0; + periph.id <= '0; + periph_gnt_o <= '0; + periph_r_data_o <= '0; + periph_r_valid_o <= '0; + periph_r_id_o <= '0; + + // Other + evt_o <= '0; + end else begin + // TCDM port + for (int ii = 0; ii < MP; ii++) begin + tcdm_req_o [ii] <= tcdm.req; + tcdm_add_o [ii] <= tcdm.add + ii*4; + tcdm_wen_o [ii] <= tcdm.wen; + tcdm_be_o [ii] <= tcdm.be[ii*4+:4]; + tcdm_data_o [ii] <= tcdm.data[ii*32+:32]; + tcdm_r_ready_o [ii] <= tcdm.r_ready; + tcdm_id_o [ii] <= tcdm.id; + end + + tcdm.gnt <= &(tcdm_gnt_i); + tcdm.r_valid <= &(tcdm_r_valid_i); + tcdm.r_data <= { >> {tcdm_r_data_i} }; + tcdm.r_opc <= tcdm_r_opc_i; + tcdm.r_user <= tcdm_r_user_i; + tcdm.r_id <= tcdm_r_id_i; + + // Control port + periph.req <= periph_req_i; + periph.add <= periph_add_i; + periph.wen <= periph_wen_i; + periph.be <= periph_be_i; + periph.data <= periph_data_i; + periph.id <= periph_id_i; + periph_gnt_o <= periph.gnt; + periph_r_data_o <= periph.r_data; + periph_r_valid_o <= periph.r_valid; + periph_r_id_o <= periph.r_id; + + // Other + evt_o <= evt; + end + end + `endif + + datamover_top #( + .N_CORES ( N_CORES ), + .ID ( ID ), + .`HCI_SIZE_PARAM(tcdm) ( `HCI_SIZE_PARAM(tcdm) ) + ) i_datamover_top ( + .clk_i ( clk_i ), + .rst_ni ( rst_ni ), + .test_mode_i ( test_mode_i ), + .evt_o ( evt ), + .tcdm ( tcdm ), + .periph ( periph ) + ); + +endmodule // datamover_top_wrap \ No newline at end of file diff --git a/scripts/compile.tcl b/scripts/compile.tcl new file mode 100644 index 0000000..372f4d3 --- /dev/null +++ b/scripts/compile.tcl @@ -0,0 +1,591 @@ +# This script was generated automatically by bender. +set ROOT "/home/ms_dgorfini/Desktop/hwpe-datamover-example" + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "$ROOT/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/clk_rst_gen.sv" \ + "$ROOT/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/sim_timeout.sv" \ + "$ROOT/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/stream_watchdog.sv" \ + "$ROOT/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/signal_highlighter.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "$ROOT/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_id_queue.sv" \ + "$ROOT/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_stream_mst.sv" \ + "$ROOT/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_synch_holdable_driver.sv" \ + "$ROOT/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_verif_pkg.sv" \ + "$ROOT/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_synch_driver.sv" \ + "$ROOT/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_stream_slv.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "$ROOT/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/test/tb_clk_rst_gen.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "$ROOT/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/rtl/tc_sram.sv" \ + "$ROOT/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/rtl/tc_sram_impl.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "$ROOT/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/rtl/tc_clk.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "$ROOT/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/cluster_pwr_cells.sv" \ + "$ROOT/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/generic_memory.sv" \ + "$ROOT/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/generic_rom.sv" \ + "$ROOT/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/pad_functional.sv" \ + "$ROOT/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/pulp_buffer.sv" \ + "$ROOT/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/pulp_pwr_cells.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "$ROOT/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/tc_pwr.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "$ROOT/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/test/tb_tc_sram.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "$ROOT/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/pulp_clock_gating_async.sv" \ + "$ROOT/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/cluster_clk_cells.sv" \ + "$ROOT/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/pulp_clk_cells.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "+incdir+$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/include" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/binary_to_gray.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "+incdir+$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/include" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cb_filter_pkg.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cc_onehot.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_reset_ctrlr_pkg.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cf_math_pkg.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/clk_int_div.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/credit_counter.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/delta_counter.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/ecc_pkg.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/edge_propagator_tx.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/exp_backoff.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/fifo_v3.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/gray_to_binary.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/isochronous_4phase_handshake.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/isochronous_spill_register.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/lfsr.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/lfsr_16bit.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/lfsr_8bit.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/lossy_valid_to_stream.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/mv_filter.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/onehot_to_bin.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/plru_tree.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/passthrough_stream_fifo.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/popcount.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/rr_arb_tree.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/rstgen_bypass.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/serial_deglitch.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/shift_reg.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/shift_reg_gated.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/spill_register_flushable.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_demux.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_filter.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_fork.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_intf.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_join_dynamic.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_mux.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_throttle.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/sub_per_hash.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/sync.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/sync_wedge.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/unread.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/read.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/addr_decode_dync.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_2phase.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_4phase.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/clk_int_div_static.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/addr_decode.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/addr_decode_napot.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/multiaddr_decode.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "+incdir+$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/include" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cb_filter.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_fifo_2phase.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/clk_mux_glitch_free.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/counter.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/ecc_decode.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/ecc_encode.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/edge_detect.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/lzc.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/max_counter.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/rstgen.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/spill_register.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_delay.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_fifo.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_fork_dynamic.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_join.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_reset_ctrlr.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_fifo_gray.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/fall_through_register.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/id_queue.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_to_mem.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_arbiter_flushable.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_fifo_optimal_wrap.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_register.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_xbar.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_fifo_gray_clearable.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_2phase_clearable.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/mem_to_banks_detailed.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_arbiter.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_omega_net.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/mem_to_banks.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "+incdir+$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/include" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/sram.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "+incdir+$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/include" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/addr_decode_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/cb_filter_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/cdc_2phase_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/cdc_2phase_clearable_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/cdc_fifo_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/cdc_fifo_clearable_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/fifo_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/graycode_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/id_queue_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/passthrough_stream_fifo_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/popcount_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/rr_arb_tree_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/stream_test.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/stream_register_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/stream_to_mem_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/sub_per_hash_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/isochronous_crossing_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/stream_omega_net_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/stream_xbar_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/clk_int_div_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/clk_int_div_static_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/clk_mux_glitch_free_tb.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/test/lossy_valid_to_stream_tb.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "+incdir+$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/include" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/clock_divider_counter.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/clk_div.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/find_first_one.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/generic_LFSR_8bit.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/generic_fifo.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/prioarbiter.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/pulp_sync.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/pulp_sync_wedge.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/rrarbiter.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/clock_divider.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/fifo_v2.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/fifo_v1.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/edge_propagator_ack.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/edge_propagator.sv" \ + "$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/src/edge_propagator_rx.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "+incdir+$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco" \ + "+incdir+$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco" \ + "+incdir+$ROOT/.bender/git/checkouts/common_cells-6a333249e301ab43/include" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/tcdm_interconnect/tcdm_interconnect_pkg.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/tcdm_interconnect/addr_dec_resp_mux.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/tcdm_interconnect/amo_shim.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/variable_latency_interconnect/addr_decoder.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/tcdm_interconnect/xbar.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/variable_latency_interconnect/simplex_xbar.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/tcdm_interconnect/clos_net.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/tcdm_interconnect/bfly_net.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/variable_latency_interconnect/full_duplex_xbar.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/tcdm_interconnect/tcdm_interconnect.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/variable_latency_interconnect/variable_latency_bfly_net.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/variable_latency_interconnect/variable_latency_interconnect.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/FanInPrimitive_Req.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/ArbitrationTree.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/MUX2_REQ.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/AddressDecoder_Resp.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/TestAndSet.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/RequestBlock2CH.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/RequestBlock1CH.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/FanInPrimitive_Resp.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/ResponseTree.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/ResponseBlock.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/AddressDecoder_Req.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/XBAR_TCDM.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/XBAR_TCDM_WRAPPER.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/TCDM_PIPE_REQ.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/TCDM_PIPE_RESP.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/grant_mask.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/priority_Flag_Req.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/AddressDecoder_PE_Req.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/AddressDecoder_Resp_PE.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/ArbitrationTree_PE.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/FanInPrimitive_Req_PE.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/RR_Flag_Req_PE.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/MUX2_REQ_PE.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/FanInPrimitive_PE_Resp.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/RequestBlock1CH_PE.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/RequestBlock2CH_PE.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/ResponseBlock_PE.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/ResponseTree_PE.sv" \ + "$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/XBAR_PE.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "+incdir+$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/hwpe_stream_interfaces.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/hwpe_stream_package.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_assign.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_buffer.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_demux_static.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_deserialize.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_fence.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_merge.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_mux_static.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_serialize.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_split.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo_ctrl.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo_scm.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/streamer/hwpe_stream_addressgen.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/streamer/hwpe_stream_addressgen_v2.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/streamer/hwpe_stream_addressgen_v3.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/streamer/hwpe_stream_sink_realign.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/streamer/hwpe_stream_source_realign.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/streamer/hwpe_stream_strbgen.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/streamer/hwpe_stream_streamer_queue.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/tcdm/hwpe_stream_tcdm_assign.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/tcdm/hwpe_stream_tcdm_mux.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/tcdm/hwpe_stream_tcdm_mux_static.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/tcdm/hwpe_stream_tcdm_reorder.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/tcdm/hwpe_stream_tcdm_reorder_static.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo_earlystall.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo_earlystall_sidech.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo_scm_test_wrap.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo_sidech.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/tcdm/hwpe_stream_tcdm_fifo_load_sidech.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo_passthrough.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/streamer/hwpe_stream_source.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/tcdm/hwpe_stream_tcdm_fifo.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/tcdm/hwpe_stream_tcdm_fifo_load.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/tcdm/hwpe_stream_tcdm_fifo_store.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/streamer/hwpe_stream_sink.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "+incdir+$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/verif/hwpe_stream_traffic_gen.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/verif/hwpe_stream_traffic_recv.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/verif/tb_fifo.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/l2_tcdm_demux.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/lint_2_apb.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/lint_2_axi.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/axi_2_lint/axi64_2_lint32.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/axi_2_lint/axi_read_ctrl.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/axi_2_lint/axi_write_ctrl.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/axi_2_lint/lint64_to_32.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/AddressDecoder_Req_L2.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/AddressDecoder_Resp_L2.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/ArbitrationTree_L2.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/FanInPrimitive_Req_L2.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/FanInPrimitive_Resp_L2.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/MUX2_REQ_L2.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/RequestBlock_L2_1CH.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/RequestBlock_L2_2CH.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/ResponseBlock_L2.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/ResponseTree_L2.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/RR_Flag_Req_L2.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/XBAR_L2.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/AddressDecoder_Req_BRIDGE.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/AddressDecoder_Resp_BRIDGE.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/ArbitrationTree_BRIDGE.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/FanInPrimitive_Req_BRIDGE.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/FanInPrimitive_Resp_BRIDGE.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/MUX2_REQ_BRIDGE.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/RequestBlock1CH_BRIDGE.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/RequestBlock2CH_BRIDGE.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/ResponseBlock_BRIDGE.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/ResponseTree_BRIDGE.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/RR_Flag_Req_BRIDGE.sv" \ + "$ROOT/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/XBAR_BRIDGE.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "+incdir+/home/ms_dgorfini/Desktop/hci/rtl/common" \ + "+incdir+$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco" \ + "+incdir+$ROOT/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco" \ + "/home/ms_dgorfini/Desktop/hci/rtl/common/hci_package.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/common/hci_interfaces.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_assign.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_fifo.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_dynamic.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_static.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_ooo.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_r_valid_filter.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_r_id_filter.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_source_v2.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_split.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_log_interconnect.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_log_interconnect_l2.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_new_log_interconnect.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_arbiter.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_router_reorder.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_sink.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_sink_v2.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_router.sv" \ + "/home/ms_dgorfini/Desktop/hci/rtl/hci_interconnect.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "+incdir+$ROOT/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl" \ + "$ROOT/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_interfaces.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_package.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_regfile_ff.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_regfile_latch.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_seq_mult.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_uloop.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_regfile_latch_test_wrap.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_regfile.sv" \ + "$ROOT/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_slave.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_register_file_latch.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_register_file_ff.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_register_file_fpga.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+RVFI=true \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "+incdir+$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl" \ + "+incdir+$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/vendor/lowrisc_ip/ip/prim/rtl" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_pkg.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_register_file_ff.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/vendor/lowrisc_ip/ip/prim/rtl/prim_assert.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_alu.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_compressed_decoder.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_controller.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_counter.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_csr.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_decoder.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_fetch_fifo.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_load_store_unit.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_multdiv_fast.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_multdiv_slow.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_pmp.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_tracer_pkg.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_wb_stage.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_cs_registers.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_ex_block.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_id_stage.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_prefetch_buffer.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_tracer.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_if_stage.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_core.sv" \ + "$ROOT/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_core_tracing.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "+incdir+/home/ms_dgorfini/Desktop/hci/rtl/common" \ + "$ROOT/rtl/datamover_engine.sv" \ + "$ROOT/rtl/datamover_package.sv" \ + "$ROOT/rtl/datamover_streamer.sv" \ + "$ROOT/rtl/datamover_top.sv" \ + "$ROOT/rtl/datamover_top_wrap.sv" \ +}]} {return 1} + +if {[catch { vlog -incr -sv \ + -suppress 2583 -suppress 13314 -suppress 8386 \ + +define+TARGET_CV32E40P_EXCLUDE_TRACER \ + +define+TARGET_RTL \ + +define+TARGET_SIMULATION \ + +define+TARGET_TEST \ + +define+TARGET_VSIM \ + +define+COREV_ASSERT_OFF \ + "+incdir+/home/ms_dgorfini/Desktop/hci/rtl/common" \ + "$ROOT/tb/tb_dummy_memory.sv" \ + "$ROOT/tb/tb_datamover_top.sv" \ +}]} {return 1} + diff --git a/scripts/parse_s19.pl b/scripts/parse_s19.pl new file mode 100755 index 0000000..4c1cabf --- /dev/null +++ b/scripts/parse_s19.pl @@ -0,0 +1,166 @@ +#!/usr/bin/perl -w +# Copyright 2023 ETH Zurich and University of Bologna. +# Licensed under the Apache License, Version 2.0, see LICENSE for details. +# SPDX-License-Identifier: Apache-2.0 +# + +use strict; + +# values for hex conversion +my %h2v= ( '0'=>0, '1'=>1, '2'=>2, '3'=>3, + '4'=>4, '5'=>5, '6'=>6, '7'=>7, + '8'=>8, '9'=>9, 'A'=>10,'B'=>11, + 'C'=>12,'D'=>13,'E'=>14,'F'=>15); +my %v2h= reverse %h2v; + +my %m; # hash for memory + +while (<>){ # read from stdin or first arg + next if (/^\s*$/); # skip empty lines + next unless (/^S3/); # only process 32 bit data lines + s/^....//; # delete the first four chars + chomp; # get rid of the newline + s/\S\S\s*$//; # and the last two chars + + my $addr=substr($_,0,8); # the first 8 are address + my $aint=hex2int($addr); # the address as an integer + my $data=substr($_,8,2); # the rest is data + $m{$aint}=$data; # write to mem hash +} + +# go from 8 bit entries to 32 bit entries +my %m32; # hash for memory, 32 bit entries +my $prev_addr = 0; +foreach my $aint (sort keys %m) { + my $data=$m{$aint}; + + my $addr = ($aint/4) << 2; + + + if (($addr - $prev_addr > 4) && ($addr % 8 != 0)) { # there was a hole and we are not aligned to 8bit anymore: need to insert padding + $m32{$addr - 4} = "00000000"; + } + + my $prev="00000000"; + if (exists $m32{$addr}) { + $prev=$m32{$addr}; + } + + my $byte0=substr($prev,0,2); + my $byte1=substr($prev,2,2); + my $byte2=substr($prev,4,2); + my $byte3=substr($prev,6,2); + + use Switch; + + switch($aint % 4) { + case 0 { $prev="${data}${byte1}${byte2}${byte3}" } + case 1 { $prev="${byte0}${data}${byte2}${byte3}" } + case 2 { $prev="${byte0}${byte1}${data}${byte3}" } + case 3 { $prev="${byte0}${byte1}${byte2}${data}" } + } + + $m32{$addr}=$prev; + $prev_addr = $addr; +} + +my @all=sort keys %m32; # all addresses sorted + +my $i =0; # our index counter +while ($i <= $#all){ + my $a=$all[$i]; # go through the addresses we have one by one + if ($a % 8 eq 4){ # the address is not aligned to 64 + $a=$a-4; # go back one address + $i=$i+1; # only increment the addresses by one + } + else{ # address was properly aligned + $i=$i+2; # the next one will be 64 bits (2 index values) + } + my $h=int2hex($a); # determine the hex value for the address + my $lo="00000000"; # default 0 + my $hi="00000000"; # default 0 + my $miss=0; # miss count, we will skip output if two mem locations are not in S19 + + if (exists($m32{$a})) { $lo=swap_endian($m32{$a})} else {$miss++}; # get the low value + if (exists($m32{$a+4})){ $hi=swap_endian($m32{$a+4})} else {$miss++}; # get the high value + + print "${h}_${hi}${lo}\n" unless ($miss>1); # print unless both are misses +} + +#------------------------------------------------------------------------------ +# Due to the great endian swap, something has to be done here as well +# +# Read in the value, split into two character array, reverse the array and join it. +# +sub swap_endian { + my $d=shift; # get parameter - assumed to be strings, even length.. + my @q=reverse(split('(\S\S)',$d)); # split and reverse into two character groups + my $retval = join('', @q); # now join again without any spaces in between + return $retval; # return back a value +} + +#------------------------------------------------------------------------------ +# subroutine to convert from hex to integer, always big endian +# +# there should be an easier way.. +# +sub hex2int { + + my $h=shift; # get the hex value + my @d=split ('',$h); # split into chars + my $i=0; # initial value + my $j=0; # digit value + foreach my $n (reverse @d){ # traverse from reverse (LSB) + $i = $i + ($h2v{$n}*(16 ** $j)); # add up the values + $j++; # increment digit count + } + return $i; # return value +} + +#------------------------------------------------------------------------------ +# subroutine to convert from long integer to hex, always big endian +# +# there should be an easier way.. +# only for 8 digits.. +# +sub int2hex { + my $i=shift; # read in the integer + my $h; # define hex value + for my $n (0..7){ # 8 digits + my $e=16 ** (7-$n); # calculate exponent + if ($e > $i){ # if 2^e is larger + $h=$h."0"; # write 0 for the digit + } + else{ # now we have a non-zero + my $d= int ($i/$e); # divide + $h=$h.$v2h{$d}; # determine the hex value + $i=$i - ($d* (16 ** (7-$n))); # subtract from int + } + } + return $h; # return hex value +} + +#------------------------------------------------------------------------------ +# subroutine to pad a 64bit data chunk and swap the 32bits +# +sub pad_data64 { + my $data=shift; # get data + my $l=length($data); # determine length + + my $hi=""; # initial values + my $lo=""; + if ($l <8){ # not even a full 32 bit + $lo="0"x(8-$l).$data; # LS is padded with zeroes to the left + $hi="00000000"; # MS is all zeroes + } + elsif ($l <16){ # One 32 bit word complete, the other half full + $lo=substr($data,0,8); # get the wirst 8 hex characters + $hi="0"x(16-$l).substr($data,8); # left append missing zeroes for the second one + } + else{ # exactly 64 bits, no padding, just swap + $lo=substr($data,0,8); # LS 32 bit + $hi=substr($data,8,8); # MS 32 bit + } + my $ret=$hi.$lo; # merge to one string + return $ret; +} \ No newline at end of file diff --git a/scripts/s19tomem.py b/scripts/s19tomem.py new file mode 100644 index 0000000..8c67a3c --- /dev/null +++ b/scripts/s19tomem.py @@ -0,0 +1,60 @@ +# Copyright 2023 ETH Zurich and University of Bologna. +# Licensed under the Apache License, Version 2.0, see LICENSE for details. +# SPDX-License-Identifier: Apache-2.0 +# + +import numpy as np +import sys + +# Instructions start at 0x1c00_0000 +# Data starts at 0x1c02_0000 +# Stack starts at 0x1c05_0000 +# We only keep last 2 bytes so memory will be filled with no offset. +# The CPU will also reference it as to not have any offset. +MEM_START = 0x1c000000 +INSTR_SIZE = 0x8000 +INSTR_END = MEM_START + INSTR_SIZE +DATA_BASE = MEM_START + 0x10000 +DATA_SIZE = 0x30000 +DATA_END = DATA_BASE + DATA_SIZE + +INSTR_MEM_SIZE = 32*1024 +DATA_MEM_SIZE = 6*8192 + +with open(sys.argv[1], "r") as f: + s = f.read() + +if len(sys.argv) >= 4: + instr_txt = sys.argv[2] + data_txt = sys.argv[3] +else: + instr_txt = "stim_instr.txt" + data_txt = "stim_data.txt" + +instr_mem = np.zeros(INSTR_MEM_SIZE, dtype='int') +data_mem = np.zeros(DATA_MEM_SIZE, dtype='int') + +for l in s.split(): + addr = int(l[0:8], 16) + wh = int(l[9:17], 16) + wl = int(l[17:25], 16) + rel_data_addr = addr - DATA_BASE + rel_imem_addr = addr - MEM_START + if addr >= DATA_BASE and addr < DATA_END: + data_mem [int(rel_data_addr / 4)] = wl + data_mem [int(rel_data_addr / 4) + 1] = wh + elif addr >= MEM_START and addr < INSTR_END: + instr_mem[int(rel_imem_addr / 4)] = wl + instr_mem[int(rel_imem_addr / 4) + 1] = wh + +s = "" +for m in instr_mem: + s += "%08x\n" % m +with open(instr_txt, "w") as f: + f.write(s) + +s = "" +for m in data_mem: + s += "%08x\n" % m +with open(data_txt, "w") as f: + f.write(s.rstrip('\n')) \ No newline at end of file diff --git a/src_files.yml b/src_files.yml deleted file mode 100644 index 545378a..0000000 --- a/src_files.yml +++ /dev/null @@ -1,14 +0,0 @@ -datamover: - vlog_opts: [ - +nowarnSVCHK, - -suppress 2275, - -L hwpe_stream_lib, - -L hwpe_ctrl_lib, - -L hci_lib, - ] - files: [ - rtl/datamover_package.sv, - rtl/datamover_streamer.sv, - rtl/datamover_engine.sv, - rtl/datamover_top.sv, - ] diff --git a/stim_data.txt b/stim_data.txt new file mode 100644 index 0000000..b10218b --- /dev/null +++ b/stim_data.txt @@ -0,0 +1,49152 @@ +00000000 +1300000b +26000016 +3500001d +4c00002c +5f000027 +6a00003a +79000031 +98000058 +8b000053 +be00004e +ad000045 +d4000074 +c700007f +f2000062 +e1000069 +3000001f +23000014 +16000009 +05000002 +7c000033 +6f000038 +5a000025 +4900002e +a8000047 +bb00004c +8e000051 +9d00005a +e400006b +f7000060 +c200007d +d1000076 +6000003e +73000035 +46000028 +55000023 +2c000012 +3f000019 +0a000004 +1900000f +f8000066 +eb00006d +de000070 +cd00007b +b400004a +a7000041 +9200005c +81000057 +50000021 +4300002a +76000037 +6500003c +1c00000d +0f000006 +3a00001b +29000010 +c8000079 +db000072 +ee00006f +fd000064 +84000055 +9700005e +a2000043 +b1000048 +c000007c +d3000077 +e600006a +f5000061 +8c000050 +9f00005b +aa000046 +b900004d +58000024 +4b00002f +7e000032 +6d000039 +14000008 +07000003 +3200001e +21000015 +f0000063 +e3000068 +d6000075 +c500007e +bc00004f +af000044 +9a000059 +89000052 +6800003b +7b000030 +4e00002d +5d000026 +24000017 +3700001c +02000001 +1100000a +a0000042 +b3000049 +86000054 +9500005f +ec00006e +ff000065 +ca000078 +d9000073 +3800001a +2b000011 +1e00000c +0d000007 +74000036 +6700003d +52000020 +4100002b +9000005d +83000056 +b600004b +a5000040 +dc000071 +cf00007a +fa000067 +e900006c +08000005 +1b00000e +2e000013 +3d000018 +44000029 +57000022 +6200003f +71000034 +80000057 +9300005c +a6000041 +b500004a +cc00007b +df000070 +ea00006d +f9000066 +1800000f +0b000004 +3e000019 +2d000012 +54000023 +47000028 +72000035 +6100003e +b0000048 +a3000043 +9600005e +85000055 +fc000064 +ef00006f +da000072 +c9000079 +28000010 +3b00001b +0e000006 +1d00000d +6400003c +77000037 +4200002a +51000021 +e0000069 +f3000062 +c600007f +d5000074 +ac000045 +bf00004e +8a000053 +99000058 +78000031 +6b00003a +5e000027 +4d00002c +3400001d +27000016 +1200000b +01000000 +d0000076 +c300007d +f6000060 +e500006b +9c00005a +8f000051 +ba00004c +a9000047 +4800002e +5b000025 +6e000038 +7d000033 +04000002 +17000009 +22000014 +3100001f +4000002b +53000020 +6600003d +75000036 +0c000007 +1f00000c +2a000011 +3900001a +d8000073 +cb000078 +fe000065 +ed00006e +9400005f +87000054 +b2000049 +a1000042 +70000034 +6300003f +56000022 +45000029 +3c000018 +2f000013 +1a00000e +09000005 +e800006c +fb000067 +ce00007a +dd000071 +a4000040 +b700004b +82000056 +9100005d +20000015 +3300001e +06000003 +15000008 +6c000039 +7f000032 +4a00002f +59000024 +b800004d +ab000046 +9e00005b +8d000050 +f4000061 +e700006a +d2000077 +c100007c +1000000a +03000001 +3600001c +25000017 +5c000026 +4f00002d +7a000030 +6900003b +88000052 +9b000059 +ae000044 +bd00004f +c400007e +d7000075 +e2000068 +f1000063 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 \ No newline at end of file diff --git a/stim_instr.txt b/stim_instr.txt new file mode 100644 index 0000000..ef29d9a --- /dev/null +++ b/stim_instr.txt @@ -0,0 +1,32768 @@ +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +0040006f +f1402573 +01f57593 +42858115 +3002a073 +a07342a1 +32973042 +82930001 +33173662 +03130001 +a02335e3 +02910002 +fe62ede3 +00070117 +f4c10113 +00000513 +00000593 +00000397 +06038393 +000380e7 +8522842a +10500073 +00008082 +00000000 +00000000 +00000000 +77930000 +078a0ff5 +439c97ae +8d3d8121 +0ff57793 +97ae078a +8121439c +77938d3d +078a0ff5 +439c97ae +8fa98121 +0ff7f713 +95ba070a +83a14188 +80828d3d +dc227139 +1c013437 +c537d256 +0a93dead +da26c004 +d452d84a +c0040913 +d64ede06 +ce5ed05a +c602cc62 +7fca8493 +c0040413 +eef50513 +1c010a37 +000a0593 +c0083769 +1be30411 +24b7fe94 +8b931c01 +c5374004 +8413dead +89934004 +84937fcb +05134004 +0593ef05 +3785000a +0491c088 +ff349be3 +1c0124b7 +c0048b13 +deadc537 +c0048993 +7fcb0c13 +c0048493 +ef150513 +000a0593 +c0883f1d +9be30491 +07b7ff84 +43d80010 +fe074fe3 +1c011637 +0357a023 +40060713 +0e13d3d8 +a4230400 +431103c7 +0267a623 +02000893 +0317a823 +aa234821 +05130307 +df881000 +08000593 +a023dfcc +a2230467 +a4230517 +c7e80507 +1737cbac +aa231c01 +07130577 +cfb8c007 +05c7ae23 +0667a023 +0717a223 +0707a423 +dbacd7e8 +0667aa23 +0717ac23 +0707ae23 +08a7a023 +08b7a223 +1c0106b7 +0967a423 +40068693 +08d7a623 +09c7a823 +0867aa23 +0917ac23 +0907ae23 +0aa7a023 +0ab7a223 +0a67a423 +0b17a623 +0b07a823 +0aa7aa23 +0ab7ac23 +0007a023 +10500073 +06136805 +08134006 +98328008 +421c4581 +00092503 +09110611 +37b38f89 +95be00f0 +ff0617e3 +650547b2 +80050513 +c62e95be +4601953a +400c431c +04110711 +37b38f8d +963e00f0 +fee518e3 +658547b2 +80058593 +8736963e +c63295b6 +431c4681 +0009a603 +09910711 +37b38f91 +96be00f0 +fee597e3 +50f247b2 +96be5462 +4732c636 +800007b7 +c39854d2 +59424532 +5a2259b2 +5b025a92 +4c624bf2 +80826121 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 diff --git a/sw/hal_datamover.h b/sw/hal_datamover.h new file mode 100644 index 0000000..430eb82 --- /dev/null +++ b/sw/hal_datamover.h @@ -0,0 +1,262 @@ +/* + * Copyright (C) 2018-2019 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Authors: Francesco Conti + */ + +#ifndef __HAL_DATAMOVER_H__ +#define __HAL_DATAMOVER_H__ + +/* REGISTER MAP */ +#define ARCHI_CL_EVT_ACC0 0 +#define ARCHI_CL_EVT_ACC1 1 +#define __builtin_bitinsert(a,b,c,d) (a | (((b << (32-c)) >> (32-c)) << d)) + +#define DATA_WIDTH 256 + +#define DATAMOVER_TRIGGER 0x00 +#define DATAMOVER_ACQUIRE 0x04 +#define DATAMOVER_FINISHED 0x08 +#define DATAMOVER_STATUS 0x0c +#define DATAMOVER_RUNNING_JOB 0x10 +#define DATAMOVER_SOFT_CLEAR 0x14 + +#define DATAMOVER_REG_SRC_ADDR 0x20 +#define DATAMOVER_REG_DST_ADDR 0x24 +#define DATAMOVER_REG_TOT_LEN 0x28 +#define DATAMOVER_REG_SRC_D0_LEN 0x2C +#define DATAMOVER_REG_SRC_D0_STRIDE 0x30 +#define DATAMOVER_REG_SRC_D1_LEN 0x34 +#define DATAMOVER_REG_SRC_D1_STRIDE 0x38 +#define DATAMOVER_REG_SRC_D2_STRIDE 0x3C +#define DATAMOVER_REG_DST_D0_LEN 0x40 +#define DATAMOVER_REG_DST_D0_STRIDE 0x44 +#define DATAMOVER_REG_DST_D1_LEN 0x48 +#define DATAMOVER_REG_DST_D1_STRIDE 0x4C +#define DATAMOVER_REG_DST_D2_STRIDE 0x50 + +/* Duplicated Registers */ +#define DATAMOVER_REG_SRC_ADDR2 0x54 +#define DATAMOVER_REG_DST_ADDR2 0x58 +#define DATAMOVER_REG_TOT_LEN2 0x5C +#define DATAMOVER_REG_SRC_D0_LEN2 0x60 +#define DATAMOVER_REG_SRC_D0_STRIDE2 0x64 +#define DATAMOVER_REG_SRC_D1_LEN2 0x68 +#define DATAMOVER_REG_SRC_D1_STRIDE2 0x6C +#define DATAMOVER_REG_SRC_D2_STRIDE2 0x70 +#define DATAMOVER_REG_DST_D0_LEN2 0x74 +#define DATAMOVER_REG_DST_D0_STRIDE2 0x78 +#define DATAMOVER_REG_DST_D1_LEN2 0x7C +#define DATAMOVER_REG_DST_D1_STRIDE2 0x80 +#define DATAMOVER_REG_DST_D2_STRIDE2 0x84 + +/* Third Set of Registers */ +#define DATAMOVER_REG_SRC_ADDR3 0x88 +#define DATAMOVER_REG_DST_ADDR3 0x8C +#define DATAMOVER_REG_TOT_LEN3 0x90 +#define DATAMOVER_REG_SRC_D0_LEN3 0x94 +#define DATAMOVER_REG_SRC_D0_STRIDE3 0x98 +#define DATAMOVER_REG_SRC_D1_LEN3 0x9C +#define DATAMOVER_REG_SRC_D1_STRIDE3 0xA0 +#define DATAMOVER_REG_SRC_D2_STRIDE3 0xA4 +#define DATAMOVER_REG_DST_D0_LEN3 0xA8 +#define DATAMOVER_REG_DST_D0_STRIDE3 0xAC +#define DATAMOVER_REG_DST_D1_LEN3 0xB0 +#define DATAMOVER_REG_DST_D1_STRIDE3 0xB4 +#define DATAMOVER_REG_DST_D2_STRIDE3 0xB8 + + +/* LOW-LEVEL HAL */ +#define DATAMOVER_ADDR_BASE 0x100000 +#define DATAMOVER_ADDR_SPACE 0x00000100 + +#define HWPE_WRITE(value, offset) *(volatile int *)(DATAMOVER_ADDR_BASE + offset) = value +#define HWPE_READ(offset) *(volatile int *)(DATAMOVER_ADDR_BASE + offset) + +static inline void datamover_src_addr_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_SRC_ADDR); +} + +static inline void datamover_dst_addr_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_DST_ADDR); +} + +static inline void datamover_tot_len_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_TOT_LEN); +} + +static inline void datamover_src_d0_len_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_SRC_D0_LEN); +} + +static inline void datamover_src_d0_stride_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_SRC_D0_STRIDE); +} + +static inline void datamover_src_d1_len_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_SRC_D1_LEN); +} + +static inline void datamover_src_d1_stride_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_SRC_D1_STRIDE); +} + +static inline void datamover_src_d2_stride_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_SRC_D2_STRIDE); +} + +static inline void datamover_dst_d0_len_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_DST_D0_LEN); +} + +static inline void datamover_dst_d0_stride_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_DST_D0_STRIDE); +} + +static inline void datamover_dst_d1_len_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_DST_D1_LEN); +} + +static inline void datamover_dst_d1_stride_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_DST_D1_STRIDE); +} + +static inline void datamover_dst_d2_stride_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_DST_D2_STRIDE); +} + +/* New Register Functions */ +static inline void datamover_src_addr2_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_SRC_ADDR2); +} +static inline void datamover_dst_addr2_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_DST_ADDR2); +} +static inline void datamover_tot_len2_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_TOT_LEN2); +} +static inline void datamover_src_d0_len2_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_SRC_D0_LEN2); +} +static inline void datamover_src_d0_stride2_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_SRC_D0_STRIDE2); +} +static inline void datamover_src_d1_len2_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_SRC_D1_LEN2); +} +static inline void datamover_src_d1_stride2_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_SRC_D1_STRIDE2); +} +static inline void datamover_src_d2_stride2_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_SRC_D2_STRIDE2); +} +static inline void datamover_dst_d0_len2_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_DST_D0_LEN2); +} +static inline void datamover_dst_d0_stride2_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_DST_D0_STRIDE2); +} +static inline void datamover_dst_d1_len2_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_DST_D1_LEN2); +} +static inline void datamover_dst_d1_stride2_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_DST_D1_STRIDE2); +} +static inline void datamover_dst_d2_stride2_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_DST_D2_STRIDE2); +} + +/* Third Set of Functions */ +static inline void datamover_src_addr3_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_SRC_ADDR3); +} +static inline void datamover_dst_addr3_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_DST_ADDR3); +} +static inline void datamover_tot_len3_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_TOT_LEN3); +} +static inline void datamover_src_d0_len3_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_SRC_D0_LEN3); +} +static inline void datamover_src_d0_stride3_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_SRC_D0_STRIDE3); +} +static inline void datamover_src_d1_len3_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_SRC_D1_LEN3); +} +static inline void datamover_src_d1_stride3_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_SRC_D1_STRIDE3); +} +static inline void datamover_src_d2_stride3_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_SRC_D2_STRIDE3); +} +static inline void datamover_dst_d0_len3_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_DST_D0_LEN3); +} +static inline void datamover_dst_d0_stride3_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_DST_D0_STRIDE3); +} +static inline void datamover_dst_d1_len3_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_DST_D1_LEN3); +} +static inline void datamover_dst_d1_stride3_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_DST_D1_STRIDE3); +} +static inline void datamover_dst_d2_stride3_set(unsigned int value) { + HWPE_WRITE(value, DATAMOVER_REG_DST_D2_STRIDE3); +} + + + +static inline void datamover_trigger_job() { + HWPE_WRITE(0, DATAMOVER_TRIGGER); +} + +static inline int datamover_acquire_job() { + return HWPE_READ(DATAMOVER_ACQUIRE); +} + +static inline unsigned int datamover_get_status() { + return HWPE_READ(DATAMOVER_STATUS); +} + +static inline void datamover_soft_clear() { + HWPE_WRITE(0, DATAMOVER_SOFT_CLEAR); +} + +int datamover_compare_int(uint32_t *actual_out, uint32_t *golden_out, int len) { + uint32_t actual_word = 0; + uint32_t golden_word = 0; + uint32_t actual = 0; + uint32_t golden = 0; + + int errors = 0; + int non_zero_values = 0; + + for (int i=0; i +// + + .section .text + .global _start +_start: + + # Cluster PEs will also starts here to avoid aligning another entry point + # Just re-route them to the right entry + csrr a0, mhartid + andi a1, a0, 0x1f + srli a0, a0, 5 + # Enabling CV32E40P mstatus.MIE + li t0, 0x1 + csrrs zero, mstatus, t0 + # Enabling CV32E40P SW interrupt (mie[3]) + li t0, 0x8 + csrrs zero, mie, t0 + + # clear the bss segment + la t0, _bss_start + la t1, _bss_end +1: + sw zero, 0(t0) + addi t0, t0, 4 + bltu t0, t1, 1b + + /* Stack initialization */ + la x2, _stack_start + +.section .text + + // On all other chips we simply pass 0. + addi a0, x0, 0 + addi a1, x0, 0 + + // Jump to main program entry point (argc = a0, argv = a1). + la t2, main + jalr x1, t2 + mv s0, a0 + + /* If program returns from main, call exit routine */ + mv a0, s0 + wfi + + .global _init + .global _fini +_init: +_fini: + # These don't have to do anything since we use init_array/fini_array. + ret + +.section .vectors, "ax" +.option norvc; + + .org 0x80 + jal x0, _start \ No newline at end of file diff --git a/sw/kernel/link.ld b/sw/kernel/link.ld new file mode 100644 index 0000000..1754f94 --- /dev/null +++ b/sw/kernel/link.ld @@ -0,0 +1,123 @@ +/* Copyright 2023 ETH Zurich and University of Bologna. */ +/* Licensed under the Apache License, Version 2.0, see LICENSE for details. */ +/* SPDX-License-Identifier: Apache-2.0 */ + +/* Yvan Tortorella */ + +SEARCH_DIR(.) +__DYNAMIC = 0; + +MEMORY +{ + instrram : ORIGIN = 0x1c000000, LENGTH = 0x8000 + dataram : ORIGIN = 0x1c010000, LENGTH = 0x30000 + stack : ORIGIN = 0x1c040000, LENGTH = 0x30000 +} + +/* Stack information variables */ +_min_stack = 0x1000; /* 4K - minimum stack space to reserve */ +_stack_len = LENGTH(stack); +_stack_start = ORIGIN(stack) + LENGTH(stack); + +/* We have to align each sector to word boundaries as our current s19->slm + * conversion scripts are not able to handle non-word aligned sections. */ + +SECTIONS +{ + .vectors : + { + . = ALIGN(4); + KEEP(*(.vectors)) + } > instrram + + .text : { + . = ALIGN(4); + _stext = .; + *(.text) + _etext = .; + __CTOR_LIST__ = .; + LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) + *(.ctors) + LONG(0) + __CTOR_END__ = .; + __DTOR_LIST__ = .; + LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) + *(.dtors) + LONG(0) + __DTOR_END__ = .; + *(.lit) + *(.shdata) + _endtext = .; + } > instrram + + /*--------------------------------------------------------------------*/ + /* Global constructor/destructor segment */ + /*--------------------------------------------------------------------*/ + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } > dataram + + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array )) + PROVIDE_HIDDEN (__init_array_end = .); + } > dataram + + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array )) + PROVIDE_HIDDEN (__fini_array_end = .); + } > dataram + + .rodata : { + . = ALIGN(4); + *(.rodata); + *(.rodata.*) + } > dataram + + .shbss : + { + . = ALIGN(4); + *(.shbss) + } > dataram + + .data : { + . = ALIGN(4); + sdata = .; + _sdata = .; + *(.data); + *(.data.*) + edata = .; + _edata = .; + } > dataram + + .bss : + { + . = ALIGN(4); + _bss_start = .; + *(.bss) + *(.bss.*) + *(.sbss) + *(.sbss.*) + *(COMMON) + _bss_end = .; + } > dataram + + /* ensure there is enough room for stack */ + .stack (NOLOAD): { + . = ALIGN(4); + . = . + _min_stack ; + . = ALIGN(4); + stack = . ; + _stack = . ; + } > stack + +} \ No newline at end of file diff --git a/sw/tb_datamover.c b/sw/tb_datamover.c new file mode 100644 index 0000000..af9b8ff --- /dev/null +++ b/sw/tb_datamover.c @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2019 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Authors: Francesco Conti + */ + +#include +#include "hal_datamover.h" +#include "tinyprintf.h" +#include "lfsr32.h" + +__attribute__ ((section(".heapsram"))) uint32_t src1[DATA_WIDTH/32 * 64]; +__attribute__ ((section(".heapsram"))) uint32_t src2[DATA_WIDTH/32 * 64]; +__attribute__ ((section(".heapsram"))) uint32_t src3[DATA_WIDTH/32 * 64]; +__attribute__ ((section(".heapsram"))) uint32_t dst1[DATA_WIDTH/32 * 64]; +__attribute__ ((section(".heapsram"))) uint32_t dst2[DATA_WIDTH/32 * 64]; +__attribute__ ((section(".heapsram"))) uint32_t dst3[DATA_WIDTH/32 * 64]; + +int main() { + + volatile int errors = 0; + + int offload_id; + + // Generate pseudo-random data for four different buffers + generate_random_buffer((unsigned int) src1, (unsigned int) &src1[DATA_WIDTH/32 * 64 - 1], DEFAULT_SEED); + generate_random_buffer((unsigned int) src2, (unsigned int) &src2[DATA_WIDTH/32 * 64 - 1], DEFAULT_SEED + 1); + generate_random_buffer((unsigned int) src3, (unsigned int) &src3[DATA_WIDTH/32 * 64 - 1], DEFAULT_SEED + 2); + + // acquire job + while ((offload_id = datamover_acquire_job()) < 0); + + // First job operates on the first buffer + datamover_src_addr_set((unsigned int) src1); + datamover_dst_addr_set((unsigned int) dst1); + datamover_tot_len_set(64); + datamover_src_d0_len_set(4); + datamover_src_d0_stride_set(DATA_WIDTH / 8); + datamover_src_d1_len_set(8); + datamover_src_d1_stride_set(DATA_WIDTH / 8 * 8); + datamover_src_d2_stride_set(DATA_WIDTH / 8 * 4); + datamover_dst_d0_len_set(4); + datamover_dst_d0_stride_set(DATA_WIDTH / 8); + datamover_dst_d1_len_set(8); + datamover_dst_d1_stride_set(DATA_WIDTH / 8 * 8); + datamover_dst_d2_stride_set(DATA_WIDTH / 8 * 4); + + // Second job operates on the second buffer + datamover_src_addr2_set((unsigned int) src2); + datamover_dst_addr2_set((unsigned int) dst2); + datamover_tot_len2_set(64); + datamover_src_d0_len2_set(4); + datamover_src_d0_stride2_set(DATA_WIDTH / 8); + datamover_src_d1_len2_set(8); + datamover_src_d1_stride2_set(DATA_WIDTH / 8 * 8); + datamover_src_d2_stride2_set(DATA_WIDTH / 8 * 4); + datamover_dst_d0_len2_set(4); + datamover_dst_d0_stride2_set(DATA_WIDTH / 8); + datamover_dst_d1_len2_set(8); + datamover_dst_d1_stride2_set(DATA_WIDTH / 8 * 8); + datamover_dst_d2_stride2_set(DATA_WIDTH / 8 * 4); + + // Third job operates on the third buffer + datamover_src_addr3_set((unsigned int) src3); + datamover_dst_addr3_set((unsigned int) dst3); + datamover_tot_len3_set(64); + datamover_src_d0_len3_set(4); + datamover_src_d0_stride3_set(DATA_WIDTH / 8); + datamover_src_d1_len3_set(8); + datamover_src_d1_stride3_set(DATA_WIDTH / 8 * 8); + datamover_src_d2_stride3_set(DATA_WIDTH / 8 * 4); + datamover_dst_d0_len3_set(4); + datamover_dst_d0_stride3_set(DATA_WIDTH / 8); + datamover_dst_d1_len3_set(8); + datamover_dst_d1_stride3_set(DATA_WIDTH / 8 * 8); + datamover_dst_d2_stride3_set(DATA_WIDTH / 8 * 4); + + + + // start hwpe operation + datamover_trigger_job(); + + // wait for end of computation + asm volatile ("wfi" ::: "memory"); + + errors += datamover_compare_int(dst1, src1, DATA_WIDTH / 32 * 64); + errors += datamover_compare_int(dst2, src2, DATA_WIDTH / 32 * 64); + errors += datamover_compare_int(dst3, src3, DATA_WIDTH / 32 * 64); + + // return errors + *(int *) 0x80000000 = errors; + return errors; +} diff --git a/test/lfsr32.c b/sw/utils/lfsr32.h similarity index 97% rename from test/lfsr32.c rename to sw/utils/lfsr32.h index 6d0635b..7c37bc6 100644 --- a/test/lfsr32.c +++ b/sw/utils/lfsr32.h @@ -18,14 +18,14 @@ * limitations under the License. */ -#include "pmsis.h" -#include -#include -#include "lfsr32.h" - #define DEFAULT_SEED 0xdeadbeef #define USE_BYTE_FEEDBACK +#include + +int generate_random_buffer(int addr_first, int addr_last, uint32_t seed); +int check_random_buffer(int addr_first, int addr_last, uint32_t seed); + int glob_errors; #ifdef USE_BYTE_FEEDBACK @@ -80,6 +80,8 @@ int check_random_buffer(int addr_first, int addr_last, uint32_t seed) { return cnt; } + + #ifdef USE_BYTE_FEEDBACK // pre-computed feedback terms // see http://users.ece.cmu.edu/~koopman/lfsr/index.html and lfsr32_precomp.c diff --git a/sw/utils/tinyprintf.h b/sw/utils/tinyprintf.h new file mode 100644 index 0000000..85ddf69 --- /dev/null +++ b/sw/utils/tinyprintf.h @@ -0,0 +1,701 @@ +/* + +Copyright (c) 2004,2012 Kustaa Nyholm / SpareTimeLabs + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Kustaa Nyholm or SpareTimeLabs nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +This modified tinyprintf is distributed under the conditions of the BSD-new license +as explicitly allowed: + -> https://github.com/cjlano/tinyprintf commit 2ee3012 + +They provide a simple and small (+400 loc) printf functionality to +be used in embedded systems. + +I've found them so useful in debugging that I do not bother with a +debugger at all. + +They are distributed in source form, so to use them, just compile them +into your project. + +Two printf variants are provided: printf and the 'sprintf' family of +functions ('snprintf', 'sprintf', 'vsnprintf', 'vsprintf'). + +The formats supported by this implementation are: +'c' 'd' 'i' 'o' 'p' 'u' 's' 'x' 'X'. + +Zero padding and field width are also supported. + +If the library is compiled with 'PRINTF_SUPPORT_LONG' defined, then +the long specifier is also supported. Note that this will pull in some +long math routines (pun intended!) and thus make your executable +noticeably longer. Likewise with 'PRINTF_LONG_LONG_SUPPORT' for the +long long specifier, and with 'PRINTF_SIZE_T_SUPPORT' for the size_t +specifier. + +The memory footprint of course depends on the target CPU, compiler and +compiler options, but a rough guesstimate (based on a H8S target) is about +1.4 kB for code and some twenty 'int's and 'char's, say 60 bytes of stack space. +Not too bad. Your mileage may vary. By hacking the source code you can +get rid of some hundred bytes, I'm sure, but personally I feel the balance of +functionality and flexibility versus code size is close to optimal for +many embedded systems. + +To use the printf, you need to supply your own character output function, +something like : + +void putc ( void* p, char c) +{ + while (!SERIAL_PORT_EMPTY) ; + SERIAL_PORT_TX_REGISTER = c; +} + +Before you can call printf, you need to initialize it to use your +character output function with something like: + +init_printf(NULL,putc); + +Notice the 'NULL' in 'init_printf' and the parameter 'void* p' in 'putc', +the NULL (or any pointer) you pass into the 'init_printf' will eventually be +passed to your 'putc' routine. This allows you to pass some storage space (or +anything really) to the character output function, if necessary. +This is not often needed but it was implemented like that because it made +implementing the sprintf function so neat (look at the source code). + +The code is re-entrant, except for the 'init_printf' function, so it is safe +to call it from interrupts too, although this may result in mixed output. +If you rely on re-entrancy, take care that your 'putc' function is re-entrant! + +The printf and sprintf functions are actually macros that translate to +'tfp_printf' and 'tfp_sprintf' when 'TINYPRINTF_OVERRIDE_LIBC' is set +(default). Setting it to 0 makes it possible to use them along with +'stdio.h' printf's in a single source file. When +'TINYPRINTF_OVERRIDE_LIBC' is set, please note that printf/sprintf are +not function-like macros, so if you have variables or struct members +with these names, things will explode in your face. Without variadic +macros this is the best we can do to wrap these function. If it is a +problem, just give up the macros and use the functions directly, or +rename them. + +It is also possible to avoid defining tfp_printf and/or tfp_sprintf by +clearing 'TINYPRINTF_DEFINE_TFP_PRINTF' and/or +'TINYPRINTF_DEFINE_TFP_SPRINTF' to 0. This allows for example to +export only tfp_format, which is at the core of all the other +functions. + +For further details see source code. + +regs Kusti, 23.10.2004 +*/ + +void putf(char *null, char c) { + *(volatile int *) (0x80000004) = (int)c; +} + +#ifndef __TFP_PRINTF__ +#define __TFP_PRINTF__ + +#include + +/* Global configuration */ + +/* Set this to 0 if you do not want to provide tfp_printf */ +#ifndef TINYPRINTF_DEFINE_TFP_PRINTF +# define TINYPRINTF_DEFINE_TFP_PRINTF 1 +#endif + +/* Set this to 0 if you do not want to provide + tfp_sprintf/snprintf/vsprintf/vsnprintf */ +#ifndef TINYPRINTF_DEFINE_TFP_SPRINTF +# define TINYPRINTF_DEFINE_TFP_SPRINTF 1 +#endif + +/* Set this to 0 if you do not want tfp_printf and + tfp_{vsn,sn,vs,s}printf to be also available as + printf/{vsn,sn,vs,s}printf */ +#ifndef TINYPRINTF_OVERRIDE_LIBC +# define TINYPRINTF_OVERRIDE_LIBC 1 +#endif + +/* Optional external types dependencies */ + +#if TINYPRINTF_DEFINE_TFP_SPRINTF +# include /* size_t */ +#endif + +/* Declarations */ + +#ifdef __GNUC__ +# define _TFP_SPECIFY_PRINTF_FMT(fmt_idx,arg1_idx) \ + __attribute__((format (printf, fmt_idx, arg1_idx))) +#else +# define _TFP_SPECIFY_PRINTF_FMT(fmt_idx,arg1_idx) +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void (*putcf) (void *, char); + +/* + 'tfp_format' really is the central function for all tinyprintf. For + each output character after formatting, the 'putf' callback is + called with 2 args: + - an arbitrary void* 'putp' param defined by the user and + passed unmodified from 'tfp_format', + - the character. + The 'tfp_printf' and 'tfp_sprintf' functions simply define their own + callback and pass to it the right 'putp' it is expecting. +*/ +void tfp_format(void *putp, putcf putf, const char *fmt, va_list va); + +#if TINYPRINTF_DEFINE_TFP_SPRINTF +int tfp_vsnprintf(char *str, size_t size, const char *fmt, va_list ap); +int tfp_snprintf(char *str, size_t size, const char *fmt, ...) \ + _TFP_SPECIFY_PRINTF_FMT(3, 4); +int tfp_vsprintf(char *str, const char *fmt, va_list ap); +int tfp_sprintf(char *str, const char *fmt, ...) \ + _TFP_SPECIFY_PRINTF_FMT(2, 3); +# if TINYPRINTF_OVERRIDE_LIBC +# define vsnprintf tfp_vsnprintf +# define snprintf tfp_snprintf +# define vsprintf tfp_vsprintf +# define sprintf tfp_sprintf +# endif +#endif + +#if TINYPRINTF_DEFINE_TFP_PRINTF +void init_printf(void *putp, putcf putf); +void tfp_printf(char *fmt, ...) _TFP_SPECIFY_PRINTF_FMT(1, 2); +# if TINYPRINTF_OVERRIDE_LIBC +# define printf tfp_printf +# endif +#endif + +#ifdef __cplusplus +} +#endif + +#endif + + + +/* + * Configuration + */ + +/* Enable long int support */ +// #define PRINTF_LONG_SUPPORT + +/* Enable long long int support (implies long int support) */ +// #define PRINTF_LONG_LONG_SUPPORT + +/* Enable %z (size_t) support */ +// #define PRINTF_SIZE_T_SUPPORT + +/* + * Configuration adjustments + */ +#ifdef PRINTF_SIZE_T_SUPPORT +#include +#endif + +#ifdef PRINTF_LONG_LONG_SUPPORT +# define PRINTF_LONG_SUPPORT +#endif + +/* __SIZEOF___ defined at least by gcc */ +#ifdef __SIZEOF_POINTER__ +# define SIZEOF_POINTER __SIZEOF_POINTER__ +#endif +#ifdef __SIZEOF_LONG_LONG__ +# define SIZEOF_LONG_LONG __SIZEOF_LONG_LONG__ +#endif +#ifdef __SIZEOF_LONG__ +# define SIZEOF_LONG __SIZEOF_LONG__ +#endif +#ifdef __SIZEOF_INT__ +# define SIZEOF_INT __SIZEOF_INT__ +#endif + +#ifdef __GNUC__ +# define _TFP_GCC_NO_INLINE_ __attribute__ ((noinline)) +#else +# define _TFP_GCC_NO_INLINE_ +#endif + +/* + * Implementation + */ +struct param { + char lz:1; /**< Leading zeros */ + char alt:1; /**< alternate form */ + char uc:1; /**< Upper case (for base16 only) */ + char align_left:1; /**< 0 == align right (default), 1 == align left */ + unsigned int width; /**< field width */ + char sign; /**< The sign to display (if any) */ + unsigned int base; /**< number base (e.g.: 8, 10, 16) */ + char *bf; /**< Buffer to output */ +}; + + +#ifdef PRINTF_LONG_LONG_SUPPORT +static void _TFP_GCC_NO_INLINE_ ulli2a( + unsigned long long int num, struct param *p) +{ + int n = 0; + unsigned long long int d = 1; + char *bf = p->bf; + while (num / d >= p->base) + d *= p->base; + while (d != 0) { + int dgt = num / d; + num %= d; + d /= p->base; + if (n || dgt > 0 || d == 0) { + *bf++ = dgt + (dgt < 10 ? '0' : (p->uc ? 'A' : 'a') - 10); + ++n; + } + } + *bf = 0; +} + +static void lli2a(long long int num, struct param *p) +{ + if (num < 0) { + num = -num; + p->sign = '-'; + } + ulli2a(num, p); +} +#endif + +#ifdef PRINTF_LONG_SUPPORT +static void uli2a(unsigned long int num, struct param *p) +{ + int n = 0; + unsigned long int d = 1; + char *bf = p->bf; + while (num / d >= p->base) + d *= p->base; + while (d != 0) { + int dgt = num / d; + num %= d; + d /= p->base; + if (n || dgt > 0 || d == 0) { + *bf++ = dgt + (dgt < 10 ? '0' : (p->uc ? 'A' : 'a') - 10); + ++n; + } + } + *bf = 0; +} + +static void li2a(long num, struct param *p) +{ + if (num < 0) { + num = -num; + p->sign = '-'; + } + uli2a(num, p); +} +#endif + +static void ui2a(unsigned int num, struct param *p) +{ + int n = 0; + unsigned int d = 1; + char *bf = p->bf; + while (num / d >= p->base) + d *= p->base; + while (d != 0) { + int dgt = num / d; + num %= d; + d /= p->base; + if (n || dgt > 0 || d == 0) { + *bf++ = dgt + (dgt < 10 ? '0' : (p->uc ? 'A' : 'a') - 10); + ++n; + } + } + *bf = 0; +} + +static void i2a(int num, struct param *p) +{ + if (num < 0) { + num = -num; + p->sign = '-'; + } + ui2a(num, p); +} + +static int a2d(char ch) +{ + if (ch >= '0' && ch <= '9') + return ch - '0'; + else if (ch >= 'a' && ch <= 'f') + return ch - 'a' + 10; + else if (ch >= 'A' && ch <= 'F') + return ch - 'A' + 10; + else + return -1; +} + +static char a2u(char ch, const char **src, int base, unsigned int *nump) +{ + const char *p = *src; + unsigned int num = 0; + int digit; + while ((digit = a2d(ch)) >= 0) { + if (digit > base) + break; + num = num * base + digit; + ch = *p++; + } + *src = p; + *nump = num; + return ch; +} + +static void putchw(void *putp, putcf putf__, struct param *p) +{ + char ch; + int n = p->width; + char *bf = p->bf; + + /* Number of filling characters */ + while (*bf++ && n > 0) + n--; + if (p->sign) + n--; + if (p->alt && p->base == 16) + n -= 2; + else if (p->alt && p->base == 8) + n--; + + /* Fill with space to align to the right, before alternate or sign */ + if (!p->lz && !p->align_left) { + while (n-- > 0) + putf(putp, ' '); + } + + /* print sign */ + if (p->sign) + putf(putp, p->sign); + + /* Alternate */ + if (p->alt && p->base == 16) { + putf(putp, '0'); + putf(putp, (p->uc ? 'X' : 'x')); + } else if (p->alt && p->base == 8) { + putf(putp, '0'); + } + + /* Fill with zeros, after alternate or sign */ + if (p->lz) { + while (n-- > 0) + putf(putp, '0'); + } + + /* Put actual buffer */ + bf = p->bf; + while ((ch = *bf++)) + putf(putp, ch); + + /* Fill with space to align to the left, after string */ + if (!p->lz && p->align_left) { + while (n-- > 0) + putf(putp, ' '); + } +} + +void tfp_format(void *putp, putcf putf__, const char *fmt, va_list va) +{ + struct param p; +#ifdef PRINTF_LONG_SUPPORT + char bf[23]; /* long = 64b on some architectures */ +#else + char bf[12]; /* int = 32b on some architectures */ +#endif + char ch; + p.bf = bf; + + while ((ch = *(fmt++))) { + if (ch != '%') { + putf(putp, ch); + } else { +#ifdef PRINTF_LONG_SUPPORT + char lng = 0; /* 1 for long, 2 for long long */ +#endif + /* Init parameter struct */ + p.lz = 0; + p.alt = 0; + p.width = 0; + p.align_left = 0; + p.sign = 0; + + /* Flags */ + while ((ch = *(fmt++))) { + switch (ch) { + case '-': + p.align_left = 1; + continue; + case '0': + p.lz = 1; + continue; + case '#': + p.alt = 1; + continue; + default: + break; + } + break; + } + + /* Width */ + if (ch >= '0' && ch <= '9') { + ch = a2u(ch, &fmt, 10, &(p.width)); + } + + /* We accept 'x.y' format but don't support it completely: + * we ignore the 'y' digit => this ignores 0-fill + * size and makes it == width (ie. 'x') */ + if (ch == '.') { + p.lz = 1; /* zero-padding */ + /* ignore actual 0-fill size: */ + do { + ch = *(fmt++); + } while ((ch >= '0') && (ch <= '9')); + } + +#ifdef PRINTF_SIZE_T_SUPPORT +# ifdef PRINTF_LONG_SUPPORT + if (ch == 'z') { + ch = *(fmt++); + if (sizeof(size_t) == sizeof(unsigned long int)) + lng = 1; +# ifdef PRINTF_LONG_LONG_SUPPORT + else if (sizeof(size_t) == sizeof(unsigned long long int)) + lng = 2; +# endif + } else +# endif +#endif + +#ifdef PRINTF_LONG_SUPPORT + if (ch == 'l') { + ch = *(fmt++); + lng = 1; +#ifdef PRINTF_LONG_LONG_SUPPORT + if (ch == 'l') { + ch = *(fmt++); + lng = 2; + } +#endif + } +#endif + switch (ch) { + case 0: + goto abort; + case 'u': + p.base = 10; +#ifdef PRINTF_LONG_SUPPORT +#ifdef PRINTF_LONG_LONG_SUPPORT + if (2 == lng) + ulli2a(va_arg(va, unsigned long long int), &p); + else +#endif + if (1 == lng) + uli2a(va_arg(va, unsigned long int), &p); + else +#endif + ui2a(va_arg(va, unsigned int), &p); + putchw(putp, putf, &p); + break; + case 'd': + case 'i': + p.base = 10; +#ifdef PRINTF_LONG_SUPPORT +#ifdef PRINTF_LONG_LONG_SUPPORT + if (2 == lng) + lli2a(va_arg(va, long long int), &p); + else +#endif + if (1 == lng) + li2a(va_arg(va, long int), &p); + else +#endif + i2a(va_arg(va, int), &p); + putchw(putp, putf, &p); + break; +#ifdef SIZEOF_POINTER + case 'p': + p.alt = 1; +#ifdef PRINTF_LONG_SUPPORT +# if defined(SIZEOF_INT) && SIZEOF_POINTER <= SIZEOF_INT + lng = 0; +# elif defined(SIZEOF_LONG) && SIZEOF_POINTER <= SIZEOF_LONG + lng = 1; +# elif defined(SIZEOF_LONG_LONG) && SIZEOF_POINTER <= SIZEOF_LONG_LONG + lng = 2; +# endif +#endif +#endif + case 'x': + case 'X': + p.base = 16; + p.uc = (ch == 'X')?1:0; +#ifdef PRINTF_LONG_SUPPORT +#ifdef PRINTF_LONG_LONG_SUPPORT + if (2 == lng) + ulli2a(va_arg(va, unsigned long long int), &p); + else +#endif + if (1 == lng) + uli2a(va_arg(va, unsigned long int), &p); + else +#endif + ui2a(va_arg(va, unsigned int), &p); + putchw(putp, putf, &p); + break; + case 'o': + p.base = 8; + ui2a(va_arg(va, unsigned int), &p); + putchw(putp, putf, &p); + break; + case 'c': + putf(putp, (char)(va_arg(va, int))); + break; + case 's': + p.bf = va_arg(va, char *); + putchw(putp, putf, &p); + p.bf = bf; + break; + case '%': + putf(putp, ch); + default: + break; + } + } + } + abort:; +} + +#if TINYPRINTF_DEFINE_TFP_PRINTF +static putcf stdout_putf; +static void *stdout_putp; + +void init_printf(void *putp, putcf putf__) +{ + stdout_putf = putf; + stdout_putp = putp; +} + +void tfp_printf(char *fmt, ...) +{ + va_list va; + va_start(va, fmt); + tfp_format(stdout_putp, stdout_putf, fmt, va); + va_end(va); +} +#endif + +#if TINYPRINTF_DEFINE_TFP_SPRINTF +struct _vsnprintf_putcf_data +{ + size_t dest_capacity; + char *dest; + size_t num_chars; +}; + +static void _vsnprintf_putcf(void *p, char c) +{ + struct _vsnprintf_putcf_data *data = (struct _vsnprintf_putcf_data*)p; + if (data->num_chars < data->dest_capacity) + data->dest[data->num_chars] = c; + data->num_chars ++; +} + +int tfp_vsnprintf(char *str, size_t size, const char *format, va_list ap) +{ + struct _vsnprintf_putcf_data data; + + if (size < 1) + return 0; + + data.dest = str; + data.dest_capacity = size-1; + data.num_chars = 0; + tfp_format(&data, _vsnprintf_putcf, format, ap); + + if (data.num_chars < data.dest_capacity) + data.dest[data.num_chars] = '\0'; + else + data.dest[data.dest_capacity] = '\0'; + + return data.num_chars; +} + +int tfp_snprintf(char *str, size_t size, const char *format, ...) +{ + va_list ap; + int retval; + + va_start(ap, format); + retval = tfp_vsnprintf(str, size, format, ap); + va_end(ap); + return retval; +} + +struct _vsprintf_putcf_data +{ + char *dest; + size_t num_chars; +}; + +static void _vsprintf_putcf(void *p, char c) +{ + struct _vsprintf_putcf_data *data = (struct _vsprintf_putcf_data*)p; + data->dest[data->num_chars++] = c; +} + +int tfp_vsprintf(char *str, const char *format, va_list ap) +{ + struct _vsprintf_putcf_data data; + data.dest = str; + data.num_chars = 0; + tfp_format(&data, _vsprintf_putcf, format, ap); + data.dest[data.num_chars] = '\0'; + return data.num_chars; +} + +int tfp_sprintf(char *str, const char *format, ...) +{ + va_list ap; + int retval; + + va_start(ap, format); + retval = tfp_vsprintf(str, format, ap); + va_end(ap); + return retval; +} +#endif diff --git a/tb/tb_datamover_top.sv b/tb/tb_datamover_top.sv new file mode 100644 index 0000000..c99895d --- /dev/null +++ b/tb/tb_datamover_top.sv @@ -0,0 +1,390 @@ +// Copyright 2023 ETH Zurich and University of Bologna. +// Solderpad Hardware License, Version 0.51, see LICENSE for details. +// SPDX-License-Identifier: SHL-0.51 +// +// Andrea Belano +// + +timeunit 1ps; +timeprecision 1ps; + +module tb_datamover_top; + parameter real PROB_STALL = 0.0; + parameter int unsigned NC = 1; + parameter int unsigned ID = 10; + parameter int unsigned DW = 256 + 32; + parameter int unsigned MP = DW/32; + parameter int unsigned MEMORY_SIZE = 192*1024; + parameter int unsigned STACK_MEMORY_SIZE = 192*1024; + parameter int unsigned PULP_XPULP = 1; + parameter int unsigned FPU = 0; + parameter int unsigned PULP_ZFINX = 0; + parameter logic [31:0] BASE_ADDR = 32'h1c000000; + parameter logic [31:0] STACK_BASE_ADDR = 32'h1c040000; + parameter logic [31:0] HWPE_ADDR_BASE_BIT = 20; + parameter string STIM_INSTR = "./stim_instr.txt"; + parameter string STIM_DATA = "./stim_data.txt"; + parameter int unsigned OUTPUT_SIZE = 2; + + logic clk; + logic rst_n; + logic test_mode; + logic fetch_enable; + logic [31:0] core_boot_addr; + + hwpe_stream_intf_tcdm instr[0:0] (.clk(clk)); + hwpe_stream_intf_tcdm stack[0:0] (.clk(clk)); + hwpe_stream_intf_tcdm tcdm [MP:0] (.clk(clk)); + + logic [NC-1:0][1:0] evt; + + logic [MP-1:0] tcdm_req; + logic [MP-1:0] tcdm_gnt; + logic [MP-1:0][31:0] tcdm_add; + logic [MP-1:0] tcdm_wen; + logic [MP-1:0][3:0] tcdm_be; + logic [MP-1:0][31:0] tcdm_data; + logic [MP-1:0] tcdm_r_ready; + logic [MP-1:0] [7:0] tcdm_id; + logic [MP-1:0][31:0] tcdm_r_data; + logic [MP-1:0] tcdm_r_valid; + logic tcdm_r_opc; + logic tcdm_r_user; + logic [7:0] tcdm_r_id; + + logic periph_req; + logic periph_gnt; + logic [31:0] periph_add; + logic periph_wen; + logic [3:0] periph_be; + logic [31:0] periph_data; + logic [ID-1:0] periph_id; + logic [31:0] periph_r_data; + logic periph_r_valid; + logic [ID-1:0] periph_r_id; + + logic instr_req; + logic instr_gnt; + logic instr_rvalid; + logic [31:0] instr_addr; + logic [31:0] instr_rdata; + + logic data_req; + logic data_gnt; + logic data_rvalid; + logic data_we; + logic [3:0] data_be; + logic [31:0] data_addr; + logic [31:0] data_wdata; + logic [31:0] data_rdata; + logic data_err; + logic core_sleep; + + // ATI timing parameters. + localparam TCP = 1.0ns; // clock period, 1 GHz clock + localparam TA = 0.2ns; // application time + localparam TT = 0.8ns; // test time + + // Performs one entire clock cycle. + task cycle; + clk <= #(TCP/2) 0; + clk <= #TCP 1; + #TCP; + endtask + + // bindings + always_comb + begin : bind_periph + periph_req = data_req & data_addr[HWPE_ADDR_BASE_BIT]; + periph_add = data_addr; + periph_wen = ~data_we; + periph_be = data_be; + periph_data = data_wdata; + periph_id = '0; + end + + always_comb + begin : bind_instrs + instr[0].req = instr_req; + instr[0].add = instr_addr; + instr[0].wen = 1'b1; + instr[0].be = '0; + instr[0].data = '0; + instr_gnt = instr[0].gnt; + instr_rdata = instr[0].r_data; + instr_rvalid = instr[0].r_valid; + end + + always_comb + begin : bind_stack + stack[0].req = data_req & (data_addr [31 -: 12] == 12'h1c0) & (data_addr [19 -: 2] == 2'b01); + stack[0].add = data_addr; + stack[0].wen = ~data_we; + stack[0].be = data_be; + stack[0].data = data_wdata; + end + + logic other_r_valid; + always_ff @(posedge clk or negedge rst_n) begin + if (~rst_n) + other_r_valid <= '0; + else + other_r_valid <= data_req & (data_addr[31:24] == 8'h80); + end + + for(genvar ii=0; ii +// + +timeunit 1ps; +timeprecision 1ps; + +`ifdef VERILATOR + `define clk_verilated clk_delayed_i +`else + `define clk_verilated clk_delayed +`endif + +module tb_dummy_memory +#( + parameter MP = 1, + parameter MEMORY_SIZE = 1024, + parameter BASE_ADDR = 0, + parameter PROB_STALL = 0.0, +`ifndef VERILATOR + parameter time TCP = 1.0ns, // clock period, 1GHz clock + parameter time TA = 0.2ns, // application time + parameter time TT = 0.8ns // test time +`else + parameter time TCP = 1.0, // clock period, 1GHz clock + parameter time TA = 0.2, // application time + parameter time TT = 0.8 // test time +`endif +) +( + input logic clk_i, + input logic rst_ni, + input logic clk_delayed_i, + input logic randomize_i, + input logic enable_i, + input logic stallable_i, + hwpe_stream_intf_tcdm.slave tcdm [MP-1:0] +); + + logic [31:0] memory [MEMORY_SIZE]; + int cnt = 0; + + int cnt_req [MP-1:0]; + int cnt_rval [MP-1:0]; + int cnt_rd [MP-1:0]; + int cnt_wr [MP-1:0]; + + logic [MP-1:0] tcdm_req; + logic [MP-1:0] tcdm_gnt; + logic [MP-1:0][31:0] tcdm_add; + logic [MP-1:0] tcdm_wen; + logic [MP-1:0][3:0] tcdm_be; + logic [MP-1:0][31:0] tcdm_data; + logic [MP-1:0][31:0] tcdm_r_data; + logic [MP-1:0] tcdm_r_valid; + logic [MP-1:0][31:0] tcdm_r_data_int; + logic [MP-1:0] tcdm_r_valid_int; + + real probs [MP-1:0]; + + logic clk_delayed; + + always_ff @(posedge clk_i) + begin : probs_proc + for (int i=0; i> 2][(j+1)*8-1:j*8]; + if(tcdm_be[i][j]) + write_data[i][(j+1)*8-1:j*8] = tcdm_data[i][(j+1)*8-1:j*8]; + end + endgenerate + + always_ff @(posedge clk_i or negedge rst_ni) begin : dummy_proc + if (~rst_ni) begin + tcdm_r_data_int <= '0; + tcdm_r_valid_int <= '0; + end else begin + for (int i=0; i> 2]; + tcdm_r_valid_int [i] <= tcdm_gnt[i]; + end + // write + else if (tcdm_gnt[i] & ~tcdm_wen[i]) begin + memory[(tcdm_add[i]-BASE_ADDR) >> 2] <= write_data [i]; + tcdm_r_data_int [i] <= write_data [i]; + tcdm_r_valid_int [i] <= 1'b1; + end + // no-grant + else if (~tcdm_gnt[i]) begin + tcdm_r_data_int [i] <= '0; + tcdm_r_valid_int [i] <= 1'b0; + end + else begin + tcdm_r_data_int [i] <= '0; + tcdm_r_valid_int [i] <= 1'b0; + end + end + end + end + end + +`ifdef VERILATOR + always_ff @(posedge `clk_verilated) + begin + tcdm_r_data <= tcdm_r_data_int; + tcdm_r_valid <= tcdm_r_valid_int; + end +`else + assign tcdm_r_data = tcdm_r_data_int; + assign tcdm_r_valid = tcdm_r_valid_int; +`endif + + generate + + for(genvar ii=0; ii - */ - -#include - -#ifndef __HAL_DATAMOVER_H__ -#define __HAL_DATAMOVER_H__ - -/* REGISTER MAP */ - -// global address map + event IDs -#define DATAMOVER_ADDR_BASE 0x00201000 -#define CLUS_CTRL_ADDR_BASE 0x00200000 -#define DATAMOVER_EVT0 12 -#define DATAMOVER_EVT1 13 - -// commands -#define DATAMOVER_COMMIT_AND_TRIGGER 0x00 -#define DATAMOVER_ACQUIRE 0x04 -#define DATAMOVER_FINISHED 0x08 -#define DATAMOVER_STATUS 0x0c -#define DATAMOVER_RUNNING_JOB 0x10 -#define DATAMOVER_SOFT_CLEAR 0x14 -#define DATAMOVER_SWSYNC 0x18 -#define DATAMOVER_URISCY_IMEM 0x1c - -// job configuration -#define DATAMOVER_REGISTER_OFFS 0x40 -#define DATAMOVER_REGISTER_CXT0_OFFS 0x80 -#define DATAMOVER_REGISTER_CXT1_OFFS 0x120 -#define DATAMOVER_REG_IN_PTR 0x00 -#define DATAMOVER_REG_OUT_PTR 0x04 -#define DATAMOVER_REG_TOT_LEN 0x08 -#define DATAMOVER_REG_IN_D0_LEN 0x0c -#define DATAMOVER_REG_IN_D0_STRIDE 0x10 -#define DATAMOVER_REG_IN_D1_LEN 0x14 -#define DATAMOVER_REG_IN_D1_STRIDE 0x18 -#define DATAMOVER_REG_IN_D2_STRIDE 0x1c -#define DATAMOVER_REG_OUT_D0_LEN 0x20 -#define DATAMOVER_REG_OUT_D0_STRIDE 0x24 -#define DATAMOVER_REG_OUT_D1_LEN 0x28 -#define DATAMOVER_REG_OUT_D1_STRIDE 0x2c -#define DATAMOVER_REG_OUT_D2_STRIDE 0x30 - -// cluster controller register offset and bits -#define CLUS_CTRL_DATAMOVER_OFFS 0x18 -#define CLUS_CTRL_DATAMOVER_CG_EN_MASK 0x800 -#define CLUS_CTRL_DATAMOVER_HCI_PRIO_MASK 0x100 -#define CLUS_CTRL_DATAMOVER_HCI_MAXSTALL_MASK 0xff - -// others -#define DATAMOVER_COMMIT_CMD 1 -#define DATAMOVER_TRIGGER_CMD 0 -#define DATAMOVER_SOFT_CLEAR_ALL 0 -#define DATAMOVER_SOFT_CLEAR_STATE 1 - -/* LOW-LEVEL HAL */ -// For all the following functions we use __builtin_pulp_OffsetedWrite and __builtin_pulp_OffsetedRead -// instead of classic load/store because otherwise the compiler is not able to correctly factorize -// the DATAMOVER base in case several accesses are done, ending up with twice more code -#if defined(__riscv__) && !defined(RV_ISA_RV32) - #define DATAMOVER_WRITE_CMD(offset, value) __builtin_pulp_OffsetedWrite(value, (int volatile *)(DATAMOVER_ADDR_BASE), offset) - #define DATAMOVER_WRITE_CMD_BE(offset, value, be) *(char volatile *)(DATAMOVER_ADDR_BASE + offset + be) = value - // #define DATAMOVER_READ_CMD(offset) (__builtin_pulp_OffsetedRead(*(int volatile *)(DATAMOVER_ADDR_BASE), offset)) - #define DATAMOVER_READ_CMD(ret, offset) ret = (*(int volatile *)(DATAMOVER_ADDR_BASE + offset)) - - #define DATAMOVER_WRITE_REG(offset, value) __builtin_pulp_OffsetedWrite(value, (int volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_OFFS), offset) - #define DATAMOVER_WRITE_REG_BE(offset, value, be) *(char volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_OFFS + offset + be) = value - // #define DATAMOVER_READ_REG(offset) (__builtin_pulp_OffsetedRead(*(int volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_OFFS), offset)) - #define DATAMOVER_READ_REG(ret, offset) ret = (*(int volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_OFFS + offset)) - - #define DATAMOVER_WRITE_REG_CXT0(offset, value) __builtin_pulp_OffsetedWrite(value, (int volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_CXT0_OFFS), offset) - #define DATAMOVER_WRITE_REG_CXT0_BE(offset, value, be) *(char volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_CXT0_OFFS + offset + be) = value - #define DATAMOVER_READ_REG_CXT0(offset) (__builtin_pulp_OffsetedRead(*(int volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_CXT0_OFFS), offset)) - - #define DATAMOVER_WRITE_REG_CXT1(offset, value) __builtin_pulp_OffsetedWrite(value, (int volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_CXT1_OFFS), offset) - #define DATAMOVER_WRITE_REG_CXT1_BE(offset, value, be) *(char volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_CXT1_OFFS + offset + be) = value - #define DATAMOVER_READ_REG_CXT1(offset) (__builtin_pulp_OffsetedRead(*(int volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_CXT1_OFFS), offset)) -#else - #define DATAMOVER_WRITE_CMD(offset, value) *(int volatile *)(DATAMOVER_ADDR_BASE + offset) = value - #define DATAMOVER_WRITE_CMD_BE(offset, value, be) *(char volatile *)(DATAMOVER_ADDR_BASE + offset + be) = value - #define DATAMOVER_READ_CMD(ret, offset) ret = (*(int volatile *)(DATAMOVER_ADDR_BASE + offset)) - - #define DATAMOVER_WRITE_REG(offset, value) *(int volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_OFFS + offset) = value - #define DATAMOVER_WRITE_REG_BE(offset, value, be) *(char volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_OFFS + offset + be) = value - #define DATAMOVER_READ_REG(ret, offset) ret = (*(int volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_OFFS + offset)) - - #define DATAMOVER_WRITE_REG_CXT0(offset, value) __builtin_pulp_OffsetedWrite(value, (int volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_CXT0_OFFS), offset) - #define DATAMOVER_WRITE_REG_CXT0_BE(offset, value, be) *(char volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_CXT0_OFFS + offset + be) = value - #define DATAMOVER_READ_REG_CXT0(offset) (__builtin_pulp_OffsetedRead(*(int volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_CXT0_OFFS), offset)) - - #define DATAMOVER_WRITE_REG_CXT1(offset, value) __builtin_pulp_OffsetedWrite(value, (int volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_CXT1_OFFS), offset) - #define DATAMOVER_WRITE_REG_CXT1_BE(offset, value, be) *(char volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_CXT1_OFFS + offset + be) = value - #define DATAMOVER_READ_REG_CXT1(offset) (__builtin_pulp_OffsetedRead(*(int volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_REGISTER_CXT1_OFFS), offset)) -#endif - -#define DATAMOVER_CG_ENABLE() *(volatile int*) (CLUS_CTRL_ADDR_BASE + CLUS_CTRL_DATAMOVER_OFFS) |= CLUS_CTRL_DATAMOVER_CG_EN_MASK -#define DATAMOVER_CG_DISABLE() *(volatile int*) (CLUS_CTRL_ADDR_BASE + CLUS_CTRL_DATAMOVER_OFFS) &= ~CLUS_CTRL_DATAMOVER_CG_EN_MASK - -#define DATAMOVER_SETPRIORITY_CORE() *(volatile int*) (CLUS_CTRL_ADDR_BASE + CLUS_CTRL_DATAMOVER_OFFS) &= ~CLUS_CTRL_DATAMOVER_HCI_PRIO_MASK -#define DATAMOVER_SETPRIORITY_DATAMOVER() *(volatile int*) (CLUS_CTRL_ADDR_BASE + CLUS_CTRL_DATAMOVER_OFFS) |= CLUS_CTRL_DATAMOVER_HCI_PRIO_MASK - -#define DATAMOVER_RESET_MAXSTALL() *(volatile int*) (CLUS_CTRL_ADDR_BASE + CLUS_CTRL_DATAMOVER_OFFS) &= ~CLUS_CTRL_DATAMOVER_HCI_MAXSTALL_MASK -#define DATAMOVER_SET_MAXSTALL(val) *(volatile int*) (CLUS_CTRL_ADDR_BASE + CLUS_CTRL_DATAMOVER_OFFS) |= (val & CLUS_CTRL_DATAMOVER_HCI_MAXSTALL_MASK) - -#define DATAMOVER_BARRIER_NOSTATUS() eu_evt_maskWaitAndClr (1 << DATAMOVER_EVT0) -#define DATAMOVER_BARRIER() do { eu_evt_maskWaitAndClr (1 << DATAMOVER_EVT0); } while((*(int volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_STATUS)) != 0) -#define DATAMOVER_BUSYWAIT() do { } while((*(int volatile *)(DATAMOVER_ADDR_BASE + DATAMOVER_STATUS)) != 0) -#define DATAMOVER_BARRIER_ACQUIRE(job_id) job_id = DATAMOVER_READ_CMD(job_id, DATAMOVER_ACQUIRE); \ - while(job_id < 0) { eu_evt_maskWaitAndClr (1 << DATAMOVER_EVT0); DATAMOVER_READ_CMD(job_id, DATAMOVER_ACQUIRE); }; - -/* UTILITY FUNCTIONS */ -int DATAMOVER_compare_int(uint32_t *actual_y, uint32_t *golden_y, int len) { - uint32_t actual_word = 0; - uint32_t golden_word = 0; - uint32_t actual = 0; - uint32_t golden = 0; - - int errors = 0; - int non_zero_values = 0; - - for (int i=0; i - * - * Adapted from https://github.com/russm/lfsr64 - * This is a simple 32-bit linear feedback shift register, printing - * pseudo-random bytes to stdout. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#define DEFAULT_SEED 0xdeadbeef -#define USE_BYTE_FEEDBACK - -int generate_random_buffer(int addr_first, int addr_last, uint32_t seed); -int check_random_buffer(int addr_first, int addr_last, uint32_t seed); diff --git a/test/test_datamover.c b/test/test_datamover.c deleted file mode 100644 index dfe0f7d..0000000 --- a/test/test_datamover.c +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright (C) 2019-2020 ETH Zurich and University of Bologna - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Authors: Francesco Conti - */ - -#include "pmsis.h" -#include "stdio.h" -#include -#include "hal_datamover.h" -#include "lfsr32.h" - -#define DATA_SIZE (16*1024) -#define DATAMOVER_BW (256 / 8) - -static int ret_value; - -static void pe_entry(void *arg) { - - printf("Entered cluster on cluster %d core %d\n", pi_cluster_id(), pi_core_id()); - - pi_cl_team_barrier(); - - int errors = 0; - - if (pi_core_id() == 0) { - - uint8_t volatile *x = (uint8_t volatile *) pi_cl_l1_malloc(NULL, DATA_SIZE); - uint8_t volatile *y = (uint8_t volatile *) pi_cl_l1_malloc(NULL, DATA_SIZE); - generate_random_buffer((int) x, (int) x + DATA_SIZE, DEFAULT_SEED); - - // enable clock - DATAMOVER_CG_ENABLE(); - - // setup HCI - DATAMOVER_SETPRIORITY_DATAMOVER(); // priority to DATAMOVER w.r.t. cores, DMA - DATAMOVER_RESET_MAXSTALL(); // reset maximum stall - DATAMOVER_SET_MAXSTALL(8); // set maximum consecutive stall to 8 cycles for cores, DMA side - - // soft-clear DATAMOVER - DATAMOVER_WRITE_CMD(DATAMOVER_SOFT_CLEAR, DATAMOVER_SOFT_CLEAR_ALL); - for(volatile int kk=0; kk<10; kk++); - - // acquire job - int job_id = -1; - DATAMOVER_BARRIER_ACQUIRE(job_id); - - // set up datamover - DATAMOVER_WRITE_REG(DATAMOVER_REG_IN_PTR, x); - DATAMOVER_WRITE_REG(DATAMOVER_REG_OUT_PTR, y); - DATAMOVER_WRITE_REG(DATAMOVER_REG_TOT_LEN, DATA_SIZE / DATAMOVER_BW); - DATAMOVER_WRITE_REG(DATAMOVER_REG_IN_D0_LEN, DATA_SIZE / DATAMOVER_BW); - DATAMOVER_WRITE_REG(DATAMOVER_REG_IN_D0_STRIDE, DATAMOVER_BW); - DATAMOVER_WRITE_REG(DATAMOVER_REG_IN_D1_LEN, DATA_SIZE / DATAMOVER_BW); - DATAMOVER_WRITE_REG(DATAMOVER_REG_IN_D1_STRIDE, 0); - DATAMOVER_WRITE_REG(DATAMOVER_REG_IN_D2_STRIDE, 0); - DATAMOVER_WRITE_REG(DATAMOVER_REG_OUT_D0_LEN, DATA_SIZE / DATAMOVER_BW); - DATAMOVER_WRITE_REG(DATAMOVER_REG_OUT_D0_STRIDE, DATAMOVER_BW); - DATAMOVER_WRITE_REG(DATAMOVER_REG_OUT_D1_LEN, DATA_SIZE / DATAMOVER_BW); - DATAMOVER_WRITE_REG(DATAMOVER_REG_OUT_D1_STRIDE, 0); - DATAMOVER_WRITE_REG(DATAMOVER_REG_OUT_D2_STRIDE, 0); - - // commit and trigger datamover operation - DATAMOVER_WRITE_CMD(DATAMOVER_COMMIT_AND_TRIGGER, DATAMOVER_TRIGGER_CMD); - - // wait for end of computation - DATAMOVER_BARRIER(); - - // disable clock - DATAMOVER_CG_DISABLE(); - - // set priority to core side - DATAMOVER_SETPRIORITY_CORE(); - - ret_value = check_random_buffer((int) y, (int) y + DATA_SIZE, DEFAULT_SEED); - - } - pi_cl_team_barrier(); -} - -static void cluster_entry(void *arg) { - pi_cl_team_fork(0, pe_entry, 0); -} - -void test_kickoff(void *arg) -{ - struct pi_device cluster_dev; - struct pi_cluster_conf conf; - struct pi_cluster_task task; - ret_value = 0; - - pi_cluster_conf_init(&conf); - conf.id = 0; - - pi_open_from_conf(&cluster_dev, &conf); - - pi_cluster_open(&cluster_dev); - - pi_cluster_task(&task, cluster_entry, NULL); - - pi_cluster_send_task_to_cl(&cluster_dev, &task); - - pi_cluster_close(&cluster_dev); - - pmsis_exit(ret_value); -} - -int main() -{ - return pmsis_kickoff((void *)test_kickoff); -} diff --git a/time_start.txt b/time_start.txt new file mode 100644 index 0000000..e69de29 diff --git a/time_stop.txt b/time_stop.txt new file mode 100644 index 0000000..e69de29 diff --git a/vsim.wlf b/vsim.wlf new file mode 100644 index 0000000..a49200f Binary files /dev/null and b/vsim.wlf differ diff --git a/work/_info b/work/_info new file mode 100644 index 0000000..d8435b8 --- /dev/null +++ b/work/_info @@ -0,0 +1,11123 @@ +m255 +K4 +z2 +Z0 !s99 nomlopt +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +R0 +!s11f vlog 2022.4 2022.10, Oct 18 2022 +13 +!s112 1.1 +!i10d 8192 +!i10e 25 +!i10f 100 +cModel Technology +Z1 d/home/ms_dgorfini/Desktop/hwpe-datamover-example +vaddr_dec_resp_mux +Z2 !s10a 1730975702 +Z3 DXx6 sv_std 3 std 0 22 9oUSJO;AeEaW`l:M@^WG92 +Z4 !s110 1730975731 +!i10b 1 +!s100 7M>`AdCZ?KF3c3?NGJSFN0 +I[ek0:6?`OUM3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/addr_decode_dync.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/addr_decode_dync.sv +!i122 9 +L0 38 154 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vaddr_decode_napot +R2 +R3 +R14 +R15 +!i10b 1 +!s100 8WI0[2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/AddressDecoder_Req.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/AddressDecoder_Req.sv +!i122 14 +L0 47 57 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@address@decoder_@req +vAddressDecoder_Req_BRIDGE +R2 +R3 +Z22 !s110 1730975732 +!i10b 1 +!s100 g7z=j<91 +IJ0i3LK:`ZjT7H6Hef?S7:^3nXSX;L73iLn0 +IPm6XLY0CPzhCgC5dAA9]mck:>0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/AddressDecoder_Resp_PE.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/AddressDecoder_Resp_PE.sv +!i122 14 +L0 47 17 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@address@decoder_@resp_@p@e +vamo_shim +R2 +R3 +R4 +!i10b 1 +!s100 ;7b^>g6NfNKU;I92 +IiS2VD=3>`?WjM[AK;[5IZ1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/tcdm_interconnect/amo_shim.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/tcdm_interconnect/amo_shim.sv +!i122 14 +L0 5 170 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +vArbitrationTree +R2 +R3 +R4 +!i10b 1 +!s100 MP?LCm0Dk1z8d9^ZkB3Dz0 +Ih=>LAEzkY:`=HT9o_1]:S3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/ArbitrationTree.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/ArbitrationTree.sv +!i122 14 +L0 50 313 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@arbitration@tree +vArbitrationTree_BRIDGE +R2 +R3 +R22 +!i10b 1 +!s100 BjoXO[6ga24P2GKCmBCJW2 +IO9i>UKXX2S7ESQ_@hZ18l0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/ArbitrationTree_BRIDGE.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/ArbitrationTree_BRIDGE.sv +!i122 17 +L0 11 272 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +n@arbitration@tree_@b@r@i@d@g@e +vArbitrationTree_L2 +R2 +R3 +R22 +!i10b 1 +!s100 8NbYANOaE^R[:UX=7>g4I2 +IBjhJXl]0IYieomKF>ZAez0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/ArbitrationTree_L2.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/ArbitrationTree_L2.sv +!i122 17 +L0 11 240 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +n@arbitration@tree_@l2 +vArbitrationTree_PE +R2 +R3 +R4 +!i10b 1 +!s100 I06817c>HS`chH@?O^ScU3 +I`>Ah@caR:8KW0U4lJ64Fa2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/ArbitrationTree_PE.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/ArbitrationTree_PE.sv +!i122 14 +L0 51 283 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@arbitration@tree_@p@e +vaxi64_2_lint32 +R2 +R3 +R22 +!i10b 1 +!s100 EJcJYF60EZYMFTNIzjRNT0 +I32TcLhE7T3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/axi_2_lint/axi64_2_lint32.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/axi_2_lint/axi64_2_lint32.sv +!i122 17 +L0 11 556 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +vaxi_read_ctrl +R2 +R3 +R22 +!i10b 1 +!s100 iGS6bdQe?6Wfhm_C^KNmT1 +I^]n?fP235MQ_6m7mQ^Dg=3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/axi_2_lint/axi_read_ctrl.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/axi_2_lint/axi_read_ctrl.sv +!i122 17 +L0 18 529 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +vaxi_write_ctrl +R2 +R3 +R22 +!i10b 1 +!s100 kE3EogkAc5AbULNe;c4Ok1 +IOM;ai[bB`jGoi_NZ;BdP23 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/axi_2_lint/axi_write_ctrl.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/axi_2_lint/axi_write_ctrl.sv +!i122 17 +L0 18 351 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +vbfly_net +R2 +R3 +R4 +!i10b 1 +!s100 n25fSgI4l]51kJZKXoaLL3 +I=zYz4LkU:3N6Z4[L_IRfR1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/tcdm_interconnect/bfly_net.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/tcdm_interconnect/bfly_net.sv +!i122 14 +L0 22 300 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +vbinary_to_gray +R2 +R3 +R15 +!i10b 1 +!s100 hb8zNGbZZ7PbYCnW0 +IH6>h;2Lli4W17HJ;Son[K2 +S1 +R1 +R5 +Z30 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cb_filter.sv +Z31 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cb_filter.sv +!i122 10 +L0 43 156 +R6 +R7 +r1 +!s85 0 +31 +R16 +Z32 !s107 /home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/include/common_cells/registers.svh|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/mem_to_banks.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_omega_net.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_arbiter.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/mem_to_banks_detailed.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_2phase_clearable.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_fifo_gray_clearable.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_xbar.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_register.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_fifo_optimal_wrap.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_arbiter_flushable.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_to_mem.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/id_queue.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/fall_through_register.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_fifo_gray.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_reset_ctrlr.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_join.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_fork_dynamic.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_fifo.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_delay.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/spill_register.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/rstgen.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/max_counter.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/lzc.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/edge_detect.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/ecc_encode.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/ecc_decode.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/counter.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/clk_mux_glitch_free.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_fifo_2phase.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cb_filter.sv| +Z33 !s90 -incr|-sv|-suppress|2583|-suppress|13314|-suppress|8386|+define+TARGET_CV32E40P_EXCLUDE_TRACER|+define+TARGET_RTL|+define+TARGET_SIMULATION|+define+TARGET_TEST|+define+TARGET_VSIM|+define+COREV_ASSERT_OFF|+incdir+/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/include|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cb_filter.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_fifo_2phase.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/clk_mux_glitch_free.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/counter.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/ecc_decode.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/ecc_encode.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/edge_detect.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/lzc.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/max_counter.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/rstgen.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/spill_register.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_delay.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_fifo.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_fork_dynamic.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_join.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_reset_ctrlr.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_fifo_gray.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/fall_through_register.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/id_queue.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_to_mem.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_arbiter_flushable.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_fifo_optimal_wrap.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_register.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_xbar.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_fifo_gray_clearable.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_2phase_clearable.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/mem_to_banks_detailed.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_arbiter.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_omega_net.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/mem_to_banks.sv| +!i113 0 +R11 +R19 +R13 +Xcb_filter_pkg +R2 +R3 +R15 +!i10b 1 +!s100 Sazbe9ZnTIzM?oSFo?h5j2 +Igfb9`F[XHl]OgcO2SD2HD2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cb_filter_pkg.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cb_filter_pkg.sv +!i122 9 +L0 14 0 +Vgfb9`F[XHl]OgcO2SD2HD2 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vcb_filter_tb +R2 +R3 +R29 +R4 +!i10b 1 +!s100 ?lJ52fYhkm6RZKD=W:L73:Q1 +I02=7e`JJ9o]Q1PL58R9zW3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cc_onehot.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cc_onehot.sv +!i122 9 +L0 18 33 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vcdc_2phase +R2 +R3 +R15 +!i10b 1 +!s100 knceoQi]gPcZR3e9Fl0PP1 +IbK=@nQQ3miMKKS0 +S1 +R1 +R5 +R38 +R39 +!i122 12 +L0 286 95 +R6 +R7 +r1 +!s85 0 +31 +R8 +R20 +R21 +!i113 0 +R11 +R19 +R13 +vcdc_2phase_dst +R2 +R3 +R15 +!i10b 1 +!s100 bl0Zc6ZF4XGQSBFOGM>kS1 +IzU6;S5ALOJX=BVd`?]KT`2 +S1 +R1 +R5 +R34 +R35 +!i122 9 +L0 142 57 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vcdc_2phase_dst_clearable +R2 +R3 +R15 +!i10b 1 +!s100 We[]8@_YO6>m6f[V:DPOR3 +IjkRDATBkD@nReeA>zaP1OKm4NzedKEgF10 +S1 +R1 +R5 +R34 +R35 +!i122 9 +L0 92 46 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vcdc_2phase_src_clearable +R2 +R3 +R15 +!i10b 1 +!s100 bKj[Y4053URn_>ad]R1ej3 +IC;i7;FVj6JWI6@FJTAISc2 +S1 +R1 +R5 +R36 +R37 +!i122 10 +L0 200 70 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +vcdc_2phase_tb +R2 +R3 +R4 +!i10b 1 +!s100 <^]n2153fT@dZ0 +I16=4cL;8kLF5>VW0LWM7f1 +S1 +R1 +R5 +R42 +R43 +!i122 9 +L0 205 122 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vcdc_4phase_src +R2 +R3 +R15 +!i10b 1 +!s100 MRGf:15Kiz]IcgeK;6DC32 +IKf_^MSH2P?nS?1gMmUk=]0 +S1 +R1 +R5 +R42 +R43 +!i122 9 +L0 92 109 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vcdc_fifo_2phase +R2 +R3 +R15 +!i10b 1 +!s100 jYa[@Z1c7cXg;?dUP1Zb60 +IND85Pa7j<8n>_3icELonF2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_fifo_2phase.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_fifo_2phase.sv +!i122 10 +L0 45 113 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +vcdc_fifo_clearable_tb +R2 +R3 +R4 +!i10b 1 +!s100 HQ;DWSao;?G1GF17Nklci2 +Ic8?n4j47nbg96W?l=MGIm1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/cdc_fifo_clearable_tb.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/cdc_fifo_clearable_tb.sv +!i122 12 +L0 15 277 +R6 +R7 +r1 +!s85 0 +31 +R8 +R20 +R21 +!i113 0 +R11 +R19 +R13 +vcdc_fifo_gray +R2 +R3 +R15 +!i10b 1 +!s100 emH1I_;CVPL0RF^jB2fS;2 +IGi;?bT=EM7bWlN8WA;bmV3 +S1 +R1 +R5 +Z44 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_fifo_gray.sv +Z45 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_fifo_gray.sv +!i122 10 +L0 102 66 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +vcdc_fifo_gray_clearable +R2 +R3 +R15 +!i10b 1 +!s100 ZJzMVWJ@P@LNZGME:[iBC0 +ILJKM]Z^XNhX8m2B70>hmT2 +S1 +R1 +R5 +Z46 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_fifo_gray_clearable.sv +Z47 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_fifo_gray_clearable.sv +!i122 10 +L0 102 163 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +vcdc_fifo_gray_dst +R2 +R3 +R15 +!i10b 1 +!s100 1EGMD1Q@U=4SBg]2b2A?22 +I5iOzdL2cCf3PeE5F9i3gm0 +S1 +R1 +R5 +R44 +R45 +!i122 10 +L0 230 64 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +vcdc_fifo_gray_dst_clearable +R2 +R3 +R15 +!i10b 1 +!s100 ZF[dk:m_:8RnV6NIib=Wg3 +IMdd@Vk3E@zll:za@Zia0i0 +S1 +R1 +R5 +R46 +R47 +!i122 10 +L0 328 66 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +vcdc_fifo_gray_src +R2 +R3 +R15 +!i10b 1 +!s100 ^j;VkST=?fC]CN;7CO7AA1 +IfjOi=EknW;?i`iC;oW9z=1 +S1 +R1 +R5 +R44 +R45 +!i122 10 +L0 172 54 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +vcdc_fifo_gray_src_clearable +R2 +R3 +R15 +!i10b 1 +!s100 P`A?c2MSe?UYG[g7X1 +I41k937RP7N^T]@[99J`C;1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/cdc_fifo_tb.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/cdc_fifo_tb.sv +!i122 12 +L0 14 193 +R6 +R7 +r1 +!s85 0 +31 +R8 +R20 +R21 +!i113 0 +R11 +R19 +R13 +vcdc_reset_ctrlr +R2 +R3 +Z48 DXx4 work 19 cdc_reset_ctrlr_pkg 0 22 :Va@>N=MN^:YZj5;RGWRo1 +R15 +!i10b 1 +!s100 dZ_?>BD=NoCWinZ]=DzG_8`P361 +I7J[fOK2z8@CH[1=]TBo`R1 +S1 +R1 +R5 +R49 +R50 +!i122 10 +L0 187 343 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +Xcdc_reset_ctrlr_pkg +R2 +R3 +R15 +!i10b 1 +!s100 N=MN^:YZj5;RGWRo1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_reset_ctrlr_pkg.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cdc_reset_ctrlr_pkg.sv +!i122 9 +Z51 L0 18 0 +V:Va@>N=MN^:YZj5;RGWRo1 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +Xcf_math_pkg +R2 +R3 +R15 +!i10b 1 +!s100 ;K=kN>N^SRJlW^J`aT@2N3 +IEh[C7UE3bSk6jL;]CO==l1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cf_math_pkg.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/cf_math_pkg.sv +!i122 9 +R51 +VEh[C7UE3bSk6jL;]CO==l1 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vclk_div +R2 +R3 +R4 +!i10b 1 +!s100 WA3VC0N6dNOaL2YUfHSN@2 +I5:Fk9>L@TiQG>adSQV3H63 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/clk_div.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/clk_div.sv +!i122 13 +Z52 L0 13 62 +R6 +R7 +r1 +!s85 0 +31 +R8 +Z53 !s107 /home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/edge_propagator_rx.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/edge_propagator.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/edge_propagator_ack.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/fifo_v1.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/fifo_v2.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/clock_divider.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/rrarbiter.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/pulp_sync_wedge.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/pulp_sync.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/prioarbiter.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/generic_fifo.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/generic_LFSR_8bit.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/find_first_one.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/clk_div.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/clock_divider_counter.sv| +Z54 !s90 -incr|-sv|-suppress|2583|-suppress|13314|-suppress|8386|+define+TARGET_CV32E40P_EXCLUDE_TRACER|+define+TARGET_RTL|+define+TARGET_SIMULATION|+define+TARGET_TEST|+define+TARGET_VSIM|+define+COREV_ASSERT_OFF|+incdir+/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/include|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/clock_divider_counter.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/clk_div.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/find_first_one.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/generic_LFSR_8bit.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/generic_fifo.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/prioarbiter.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/pulp_sync.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/pulp_sync_wedge.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/rrarbiter.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/clock_divider.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/fifo_v2.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/fifo_v1.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/edge_propagator_ack.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/edge_propagator.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/edge_propagator_rx.sv| +!i113 0 +R11 +R19 +R13 +vclk_int_div +R2 +R3 +R15 +!i10b 1 +!s100 7nVFbQLGg4mFX]E]z]d]70 +IQbiz@znTKI5QVNV^3@8YD1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/clk_int_div.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/clk_int_div.sv +!i122 9 +L0 70 323 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vclk_int_div_static +R2 +R3 +R15 +!i10b 1 +!s100 n4id6M5?lJQ;@_AL?DVHX3 +IA@@61_ecUKkk2K@FPT;Mh0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/clk_int_div_static.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/clk_int_div_static.sv +!i122 9 +L0 60 36 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vclk_int_div_static_tb +R2 +R3 +R4 +!i10b 1 +!s100 9NBziRGH9^nSgf38S@5Mh2 +IA>1;Q0IHnzRYGOFPIo]9[1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/clk_int_div_static_tb.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/clk_int_div_static_tb.sv +!i122 12 +L0 14 71 +R6 +R7 +r1 +!s85 0 +31 +R8 +R20 +R21 +!i113 0 +R11 +R19 +R13 +vclk_int_div_tb +R2 +R3 +Z55 DXx4 work 11 stream_test 0 22 f[5CB:Rf7`U@Kb@>RG<_02 +R4 +!i10b 1 +!s100 lNznaF8?oo57oRES^i;E_1 +IaOEoT3L17k@:4CMdH@5La2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/clk_int_div_tb.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/clk_int_div_tb.sv +!i122 12 +L0 20 177 +R6 +R7 +r1 +!s85 0 +31 +R8 +R20 +R21 +!i113 0 +R11 +R19 +R13 +vclk_mux_glitch_free +R2 +R3 +R15 +!i10b 1 +!s100 h;U__CI?P?G2_]JgQ2>]R1 +IHhIcQlhi>`0;JJlVn==9K0 +S1 +R1 +R5 +Z56 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/clk_mux_glitch_free.sv +Z57 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/clk_mux_glitch_free.sv +!i122 10 +L0 73 181 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +vclk_mux_glitch_free_tb +R2 +R3 +R4 +!i10b 1 +!s100 BzOEH54N`:SnL^e;RSTlO0 +Ibof:aRIQaFfFGEMV?38RR2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/clk_mux_glitch_free_tb.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/clk_mux_glitch_free_tb.sv +!i122 12 +L0 22 102 +R6 +R7 +r1 +!s85 0 +31 +R8 +R20 +R21 +!i113 0 +R11 +R19 +R13 +vclk_or_tree +R2 +R3 +R15 +!i10b 1 +!s100 8O<9LYIYj6zd9NDzVPc4L3 +IlBf`1G[gNnFbLKSn;@5cz1 +S1 +R1 +R5 +R56 +R57 +!i122 10 +L0 256 37 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +vclk_rst_gen +Z58 !s10a 1734528047 +R3 +Z59 !s110 1730975728 +!i10b 1 +!s100 dQLCzNZkKCmA;:_ePT^cl1 +Ib67[ZKR[>R3^?zFGR@ze92 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/clk_rst_gen.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/clk_rst_gen.sv +!i122 0 +Z60 L0 12 52 +R6 +R7 +r1 +!s85 0 +31 +Z61 !s108 1730975728.000000 +Z62 !s107 /home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_stream_slv.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_synch_driver.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/stream_watchdog.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/sim_timeout.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/signal_highlighter.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_verif_pkg.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_synch_holdable_driver.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_stream_mst.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_id_queue.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/clk_rst_gen.sv| +Z63 !s90 -incr|-sv|-suppress|2583|-suppress|13314|-suppress|8386|+define+TARGET_CV32E40P_EXCLUDE_TRACER|+define+TARGET_RTL|+define+TARGET_SIMULATION|+define+TARGET_TEST|+define+TARGET_VSIM|+define+COREV_ASSERT_OFF|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/clk_rst_gen.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_id_queue.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_stream_mst.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_synch_holdable_driver.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_verif_pkg.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/signal_highlighter.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/sim_timeout.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/stream_watchdog.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_synch_driver.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_stream_slv.sv| +!i113 0 +R11 +R27 +R13 +vclock_divider +R2 +R3 +R4 +!i10b 1 +!s100 k[4eKEY6KAcz@fEMDPF@Q[90ROM3h0 +IR9P1`]VkLTf4?fVmVnjhe;;A:1aF1 +S1 +R1 +R5 +R65 +R66 +!i122 7 +Z72 L0 38 15 +R6 +R7 +r1 +!s85 0 +31 +R68 +R69 +R70 +!i113 0 +R11 +R27 +R13 +vcluster_clock_inverter +R2 +R3 +R15 +!i10b 1 +!s100 QP4jB1C;a7Y07ZCKBX9aB0 +I?3l]FE?`9zCERN0N>VWiM0 +S1 +R1 +R5 +R65 +R66 +!i122 7 +Z73 L0 54 11 +R6 +R7 +r1 +!s85 0 +31 +R68 +R69 +R70 +!i113 0 +R11 +R27 +R13 +vcluster_clock_mux2 +R2 +R3 +R15 +!i10b 1 +!s100 P6iMlPL[WP5I]=5c^OV^A1 +IRidgN:4D<0J71 +R6 +!i10b 1 +!s100 <^h@jBKgiRmMA1;hl>aPD2 +Ib0mFI7z_McEb1dgN:4D<0J71 +r1 +!s85 0 +!i10b 1 +!s100 Mh_1:EYOkN_6]U7Zk>V431 +IJm5N7C]:QD>dgN:4D<0J71 +!i103 1 +S1 +R1 +R90 +R91 +R92 +!i122 196 +R51 +R7 +31 +!s108 1734526117.000000 +R94 +R95 +!i113 0 +R11 +R96 +R13 +Xdatamover_package +!s10a 1734529316 +R3 +R88 +R89 +Z97 !s110 1734529336 +!i10b 1 +!s100 NC<7TEX?bHY78XFMm[LlR0 +I0Qg=lDIE_iRid_KQ^G2`i1 +S1 +R1 +w1734529316 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/rtl/datamover_package.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/rtl/datamover_package.sv +!i122 224 +Z98 L0 16 0 +V0Qg=lDIE_iRid_KQ^G2`i1 +R7 +r1 +!s85 0 +31 +Z99 !s108 1734529336.000000 +R94 +R95 +!i113 0 +R11 +R96 +R13 +vdatamover_streamer +r1 +!s110 1734526432 +Z100 !s10a 1734526419 +R3 +R88 +R89 +Z101 DXx4 work 17 datamover_package 0 22 0Qg=lDIE_iRid_KQ^G2`i1 +DXx4 work 26 datamover_streamer_sv_unit 0 22 ];?M^?3fX>c:8[oM3j=J;3 +R6 +!i10b 1 +!s100 Q7OjFX6_Szm`?R=0]E:mW3 +IiHTO469QEjVZTVm3dSkTA2 +!s105 datamover_streamer_sv_unit +S1 +R1 +Z102 w1734526419 +Z103 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/rtl/datamover_streamer.sv +Z104 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/rtl/datamover_streamer.sv +!i122 202 +L0 25 148 +R7 +31 +!s108 1734526431.000000 +R94 +R95 +!i113 0 +R11 +R96 +R13 +Xdatamover_streamer_sv_unit +R100 +R3 +R88 +R89 +R101 +R97 +V];?M^?3fX>c:8[oM3j=J;3 +r1 +!s85 0 +!i10b 1 +!s100 >NMKc:8[oM3j=J;3 +!i103 1 +S1 +R1 +R102 +R103 +R104 +Z105 F/home/ms_dgorfini/Desktop/hci/rtl/common/hci_helpers.svh +!i122 224 +Z106 L0 21 0 +R7 +31 +R99 +R94 +R95 +!i113 0 +R11 +R96 +R13 +vdatamover_top +R3 +Z107 DXx4 work 17 hwpe_ctrl_package 0 22 :6eli^48=C3m0KTa^Lg;fXMWz^jBTeL2 +IbA1B=5GKQKLZnc[^RQX3d1 +!s105 datamover_top_sv_unit +S1 +R1 +Z109 w1737017900 +Z110 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/rtl/datamover_top.sv +Z111 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/rtl/datamover_top.sv +!i122 326 +L0 24 277 +R7 +31 +Z112 !s108 1737017926.000000 +R94 +R95 +!i113 0 +R11 +R96 +R13 +Xdatamover_top_sv_unit +R3 +R107 +R88 +R89 +R101 +R108 +V4YlKM=9]5i]TeKg6:O1[z1 +r1 +!s85 0 +!i10b 1 +!s100 BWjLkAWIhL?RebT=m;lNR1 +I4YlKM=9]5i]TeKg6:O1[z1 +!i103 1 +S1 +R1 +R109 +R110 +R111 +R105 +!i122 326 +R51 +R7 +31 +R112 +R94 +R95 +!i113 0 +R11 +R96 +R13 +vdatamover_top_wrap +Z113 !s10a 1730975114 +R3 +R88 +R89 +R101 +R107 +R97 +!i10b 1 +!s100 J>Z8dXCKXl=z5?jaKH2JR0 +IOWenU6I8PLjg7OHIzYgWD0 +S1 +R1 +Z114 w1730975114 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/rtl/datamover_top_wrap.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/rtl/datamover_top_wrap.sv +!i122 224 +L0 11 186 +R6 +R7 +r1 +!s85 0 +31 +R99 +R94 +R95 +!i113 0 +R11 +R96 +R13 +vdelta_counter +R2 +R3 +R15 +!i10b 1 +!s100 UJbDN50aYW4:CK[Rc0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/edge_propagator_rx.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/edge_propagator_rx.sv +!i122 13 +L0 13 19 +R6 +R7 +r1 +!s85 0 +31 +R8 +R53 +R54 +!i113 0 +R11 +R19 +R13 +vedge_propagator_tx +R2 +R3 +R15 +!i10b 1 +!s100 TTCnmJaMHNeY>UW7z]iTW2 +IDA50bN22`Y:JmJ][2?RW90 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/edge_propagator_tx.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/edge_propagator_tx.sv +!i122 9 +L0 13 28 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vexp_backoff +R2 +R3 +R15 +!i10b 1 +!s100 L3aY[QUnoi2[kN;58GAC_2 +ITQaRk6JDR]30XF2@RM[8@2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/exp_backoff.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/exp_backoff.sv +!i122 9 +L0 23 76 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vfall_through_register +R2 +R3 +R15 +!i10b 1 +!s100 c_:iidlGMLQmCJoS_8g=C2 +I^H^n>XEV6KQnh_ZQ;M3_c`20 +IG>PEkbohF5DkA0lXj]0Nj3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/FanInPrimitive_Req.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/FanInPrimitive_Req.sv +!i122 14 +L0 48 90 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@fan@in@primitive_@req +vFanInPrimitive_Req_BRIDGE +R2 +R3 +R22 +!i10b 1 +!s100 NXO:XkH=?nLFAmCO2cQBm0 +I2]kiFScGJi5d>mX>e:VAh1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/FanInPrimitive_Req_BRIDGE.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/FanInPrimitive_Req_BRIDGE.sv +!i122 17 +L0 11 80 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +n@fan@in@primitive_@req_@b@r@i@d@g@e +vFanInPrimitive_Req_L2 +R2 +R3 +R22 +!i10b 1 +!s100 _^Gdliz9C^TfTSZhi::l11 +IoY5kRQYckPOY_a5d>;WI23 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/FanInPrimitive_Req_L2.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/FanInPrimitive_Req_L2.sv +!i122 17 +L0 11 75 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +n@fan@in@primitive_@req_@l2 +vFanInPrimitive_Req_PE +R2 +R3 +R4 +!i10b 1 +!s100 c9:MKO5ChF]XR^HGLiUa[3 +I2E?C;>[;kLF9ZUAC2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/FanInPrimitive_Resp_BRIDGE.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/FanInPrimitive_Resp_BRIDGE.sv +!i122 17 +L0 11 42 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +n@fan@in@primitive_@resp_@b@r@i@d@g@e +vFanInPrimitive_Resp_L2 +R2 +R3 +R22 +!i10b 1 +!s100 Vg6n?WJ5WlX30?0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/FanInPrimitive_Resp_L2.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/FanInPrimitive_Resp_L2.sv +!i122 17 +L0 11 35 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +n@fan@in@primitive_@resp_@l2 +vfifo +R2 +R3 +R4 +!i10b 1 +!s100 7ziV;0M^Yg6cbXmS>m[X<3 +IPR1EHjoVg1VjKLPiJ6QJz0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/fifo_v1.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/fifo_v1.sv +!i122 13 +L0 14 43 +R6 +R7 +r1 +!s85 0 +31 +R8 +R53 +R54 +!i113 0 +R11 +R19 +R13 +vfifo_inst_tb +R2 +R3 +DXx4 work 14 rand_verif_pkg 0 22 Ng6:g2Nl:XgQ6F9j9onP1 +IGET3WjTa<^B7ck8GN=3Ic1 +S1 +R1 +R5 +Z116 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/fifo_tb.sv +Z117 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/fifo_tb.sv +!i122 214 +L0 12 146 +R6 +R7 +r1 +!s85 0 +31 +!s108 1734528057.000000 +R20 +R21 +!i113 0 +R11 +R19 +R13 +vfifo_tb +R2 +R3 +R4 +!i10b 1 +!s100 hCCEQTF71[VJZQK[Nnizo0 +IfGldAdoHL9QSf2CIb98SH2 +S1 +R1 +R5 +R116 +R117 +!i122 12 +L0 160 96 +R6 +R7 +r1 +!s85 0 +31 +R8 +R20 +R21 +!i113 0 +R11 +R19 +R13 +vfifo_v2 +R2 +R3 +R4 +!i10b 1 +!s100 J4=@Vh6X6a8I2_B7URQia0 +IHmDX2jh`A6gh6lAJV2kNV0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/fifo_v2.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/fifo_v2.sv +!i122 13 +L0 13 67 +R6 +R7 +r1 +!s85 0 +31 +R8 +R53 +R54 +!i113 0 +R11 +R19 +R13 +vfifo_v3 +R2 +R3 +R15 +!i10b 1 +!s100 lM1XRXIZ_[PFiIG@ShnKd0 +IIVFKP?mOzYM]kiQ5Wj?PG2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/fifo_v3.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/fifo_v3.sv +!i122 9 +L0 13 144 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vfind_first_one +R2 +R3 +R4 +!i10b 1 +!s100 8aU`R4Y^bNoQ7PMX=fbjJ0 +I^cLhK`PO@WYXPK3FdI71n1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/find_first_one.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/find_first_one.sv +!i122 13 +L0 17 67 +R6 +R7 +r1 +!s85 0 +31 +R8 +R53 +R54 +!i113 0 +R11 +R19 +R13 +vfull_duplex_xbar +R2 +R3 +R4 +!i10b 1 +!s100 ;^L@5P40MZ1PRQT=8hhQ92 +IUjTSIK[[VMn^WY4gJ08>ajKlzY2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/generic_fifo.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/generic_fifo.sv +!i122 13 +L0 38 237 +R6 +R7 +r1 +!s85 0 +31 +R8 +R53 +R54 +!i113 0 +R11 +R19 +R13 +vgeneric_LFSR_8bit +R2 +R3 +R4 +!i10b 1 +!s100 4W]VTcM[d6CfcMFc>:jo2X5DW1 +I8N9ChhF_dF2ebfW2FeN@e0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/generic_rom.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/generic_rom.sv +!i122 4 +L0 11 32 +R6 +R7 +r1 +!s85 0 +31 +R68 +R80 +R81 +!i113 0 +R11 +R27 +R13 +vgrant_mask +R2 +R3 +R4 +!i10b 1 +!s100 o8e:>STFQZh[j?eBlhkmn2 +I]YzTl3k79^3NWTZB7c2^<2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/grant_mask.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/grant_mask.sv +!i122 14 +L0 46 161 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +vgray_to_binary +R2 +R3 +R15 +!i10b 1 +!s100 cG>gFR;z[HIFdEz^]>1O`0 +ID5Cb;ClPVSF:WG6F:mLlXk8=TS3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/graycode_tb.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/graycode_tb.sv +!i122 12 +L0 14 34 +R6 +R7 +r1 +!s85 0 +31 +R8 +R20 +R21 +!i113 0 +R11 +R19 +R13 +vhash_block +R2 +R3 +R29 +R15 +!i10b 1 +!s100 CLQ296nlg36fKL0^L_nlD1 +IX[=S5U;mdFmVklMg3m8S_2 +S1 +R1 +R5 +R30 +R31 +!i122 10 +L0 201 48 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +vhci_arbiter +Z118 !s10a 1730974881 +R3 +R88 +R89 +Z119 !s110 1734526116 +!i10b 1 +!s100 ZMFF0e?`34Xc0JATnH@PH1 +Ie8QdMB^gLe@@Q@zLTd`FP3 +S1 +R1 +Z120 w1730974881 +8/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_arbiter.sv +F/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_arbiter.sv +!i122 193 +L0 57 130 +R6 +R7 +r1 +!s85 0 +31 +Z121 !s108 1734526116.000000 +Z122 !s107 /home/ms_dgorfini/Desktop/hci/rtl/common/hci_helpers.svh|/home/ms_dgorfini/Desktop/hci/rtl/hci_interconnect.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_router.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_sink.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_router_reorder.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_arbiter.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_new_log_interconnect.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_log_interconnect_l2.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_log_interconnect.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_split.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_source.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_r_id_filter.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_r_valid_filter.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_ooo.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_static.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_dynamic.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_fifo.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_assign.sv|/home/ms_dgorfini/Desktop/hci/rtl/common/hci_interfaces.sv|/home/ms_dgorfini/Desktop/hci/rtl/common/hci_package.sv| +Z123 !s90 -incr|-sv|-suppress|2583|-suppress|13314|-suppress|8386|+define+TARGET_CV32E40P_EXCLUDE_TRACER|+define+TARGET_RTL|+define+TARGET_SIMULATION|+define+TARGET_TEST|+define+TARGET_VSIM|+define+COREV_ASSERT_OFF|+incdir+/home/ms_dgorfini/Desktop/hci/rtl/common|+incdir+/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco|+incdir+/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco|/home/ms_dgorfini/Desktop/hci/rtl/common/hci_package.sv|/home/ms_dgorfini/Desktop/hci/rtl/common/hci_interfaces.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_assign.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_fifo.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_dynamic.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_static.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_ooo.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_r_valid_filter.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_r_id_filter.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_source.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_split.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_log_interconnect.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_log_interconnect_l2.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_new_log_interconnect.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_arbiter.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_router_reorder.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_sink.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_router.sv|/home/ms_dgorfini/Desktop/hci/rtl/hci_interconnect.sv| +!i113 0 +R11 +Z124 !s92 -suppress 2583 -suppress 13314 -suppress 8386 -sv +define+TARGET_CV32E40P_EXCLUDE_TRACER +define+TARGET_RTL +define+TARGET_SIMULATION +define+TARGET_TEST +define+TARGET_VSIM +define+COREV_ASSERT_OFF +incdir+/home/ms_dgorfini/Desktop/hci/rtl/common +incdir+/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco +incdir+/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco +R13 +vhci_core_assign +R118 +R3 +R88 +Z125 !s110 1730977557 +!i10b 1 +!s100 V3Nkcl0UKDRaZ`Z1@G8Zj3 +InKfmF4L=9U8I>K16eGR1J2 +S1 +R1 +R120 +8/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_assign.sv +F/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_assign.sv +!i122 24 +L0 22 31 +R6 +R7 +r1 +!s85 0 +31 +Z126 !s108 1730977557.000000 +R122 +R123 +!i113 0 +R11 +R124 +R13 +vhci_core_fifo +!s10a 1730977712 +R3 +R88 +R89 +R119 +!i10b 1 +!s100 cK4]3^<9^@H6lObMG?1JY2 +S1 +R1 +R120 +8/home/ms_dgorfini/Desktop/hci/rtl/common/hci_interfaces.sv +F/home/ms_dgorfini/Desktop/hci/rtl/common/hci_interfaces.sv +!i122 193 +L0 26 0 +R6 +R7 +r1 +!s85 0 +31 +R121 +R122 +R123 +!i113 0 +R11 +R124 +R13 +vhci_core_mux_dynamic +R118 +R3 +R88 +R89 +R119 +!i10b 1 +!s100 KbzWc4:a4ZBjR0J06kUH11 +I`aDBG=[=g:OTf5kGTg?Q61 +S1 +R1 +R120 +8/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_dynamic.sv +F/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_dynamic.sv +!i122 193 +L0 50 280 +R6 +R7 +r1 +!s85 0 +31 +R121 +R122 +R123 +!i113 0 +R11 +R124 +R13 +vhci_core_mux_ooo +R118 +R3 +R88 +R89 +R119 +!i10b 1 +!s100 aZP;2gkO9D3Rc=G@1`[Ul0 +IzXJOgoUKAV6TB6MBA:K`11 +S1 +R1 +R120 +8/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_ooo.sv +F/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_ooo.sv +!i122 193 +L0 43 219 +R6 +R7 +r1 +!s85 0 +31 +R121 +R122 +R123 +!i113 0 +R11 +R124 +R13 +vhci_core_mux_static +R118 +R3 +R88 +R89 +R119 +!i10b 1 +!s100 V_:R6Sm`2?07jFY>GMSSS^Y=O@PK[9FT3 +Ib9MLOgSj8NXhlZK`dDFD03 +S1 +R1 +R120 +8/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_r_valid_filter.sv +F/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_r_valid_filter.sv +!i122 193 +L0 27 92 +R6 +R7 +r1 +!s85 0 +31 +R121 +R122 +R123 +!i113 0 +R11 +R124 +R13 +vhci_core_sink +!s10a 1734525775 +R3 +R88 +R89 +R119 +!i10b 1 +!s100 iI0F>=?9FJNU=klW<9a7^1 +IM8EM:f[YlW[?R3KRB>2 +S1 +R1 +w1737017055 +8/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_sink_v2.sv +F/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_sink_v2.sv +!i122 321 +L0 81 321 +R6 +R7 +r1 +!s85 0 +31 +Z128 !s108 1737017072.000000 +Z129 !s107 /home/ms_dgorfini/Desktop/hci/rtl/common/hci_helpers.svh|/home/ms_dgorfini/Desktop/hci/rtl/hci_interconnect.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_router.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_sink_v2.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_sink.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_router_reorder.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_arbiter.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_new_log_interconnect.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_log_interconnect_l2.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_log_interconnect.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_split.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_source_v2.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_r_id_filter.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_r_valid_filter.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_ooo.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_static.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_dynamic.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_fifo.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_assign.sv|/home/ms_dgorfini/Desktop/hci/rtl/common/hci_interfaces.sv|/home/ms_dgorfini/Desktop/hci/rtl/common/hci_package.sv| +Z130 !s90 -incr|-sv|-suppress|2583|-suppress|13314|-suppress|8386|+define+TARGET_CV32E40P_EXCLUDE_TRACER|+define+TARGET_RTL|+define+TARGET_SIMULATION|+define+TARGET_TEST|+define+TARGET_VSIM|+define+COREV_ASSERT_OFF|+incdir+/home/ms_dgorfini/Desktop/hci/rtl/common|+incdir+/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco|+incdir+/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco|/home/ms_dgorfini/Desktop/hci/rtl/common/hci_package.sv|/home/ms_dgorfini/Desktop/hci/rtl/common/hci_interfaces.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_assign.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_fifo.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_dynamic.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_static.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_mux_ooo.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_r_valid_filter.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_r_id_filter.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_source_v2.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_split.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_log_interconnect.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_log_interconnect_l2.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_new_log_interconnect.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_arbiter.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_router_reorder.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_sink.sv|/home/ms_dgorfini/Desktop/hci/rtl/core/hci_core_sink_v2.sv|/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_router.sv|/home/ms_dgorfini/Desktop/hci/rtl/hci_interconnect.sv| +!i113 0 +R11 +R124 +R13 +vhci_core_source +!s10a 1734525242 +R3 +R88 +R89 +R119 +!i10b 1 +!s100 eXP4I3 +S1 +R1 +R120 +8/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_log_interconnect.sv +F/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_log_interconnect.sv +!i122 193 +L0 18 138 +R6 +R7 +r1 +!s85 0 +31 +R121 +R122 +R123 +!i113 0 +R11 +R124 +R13 +vhci_log_interconnect_l2 +R118 +R3 +R88 +R89 +R119 +!i10b 1 +!s100 ST]?2JLgLD2oU;fCW>ogX2 +IUYmaZeFYWD0n`0KRzab7=1 +S1 +R1 +R120 +8/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_log_interconnect_l2.sv +F/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_log_interconnect_l2.sv +!i122 193 +L0 18 139 +R6 +R7 +r1 +!s85 0 +31 +R121 +R122 +R123 +!i113 0 +R11 +R124 +R13 +vhci_new_log_interconnect +R118 +R3 +R88 +R89 +R119 +!i10b 1 +!s100 d1UdjC1dTT9VcLm5hSjNb3 +IH4NI0CE6cXiQHfiAMN]S80 +S1 +R1 +R120 +8/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_new_log_interconnect.sv +F/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_new_log_interconnect.sv +!i122 193 +L0 18 137 +R6 +R7 +r1 +!s85 0 +31 +R121 +R122 +R123 +!i113 0 +R11 +R124 +R13 +Xhci_package +!s10a 1734525705 +R3 +R88 +R119 +!i10b 1 +!s100 4`^H6?nKDiBf]7DHU0bod2 +IHhT>gA3:Z@0:ahjF8CYc9m3 +INN4NIfhi^C_EYWlMLF]Rz1 +S1 +R1 +R120 +8/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_router_reorder.sv +F/home/ms_dgorfini/Desktop/hci/rtl/interco/hci_router_reorder.sv +!i122 24 +L0 20 157 +R6 +R7 +r1 +!s85 0 +31 +R126 +R122 +R123 +!i113 0 +R11 +R124 +R13 +Yhwpe_ctrl_intf_periph +R2 +R3 +Z131 !s110 1730975733 +!i10b 1 +!s100 nTOSTTzfU=V`TI=LiD4HI0 +IQ2XkQLifN^0L?]MNOXH1Z2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_interfaces.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_interfaces.sv +!i122 19 +R98 +R6 +R7 +r1 +!s85 0 +31 +Z132 !s108 1730975733.000000 +Z133 !s107 /home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_slave.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_regfile.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_regfile_latch_test_wrap.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_uloop.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_seq_mult.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_regfile_latch.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_regfile_ff.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_package.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_interfaces.sv| +Z134 !s90 -incr|-sv|-suppress|2583|-suppress|13314|-suppress|8386|+define+TARGET_CV32E40P_EXCLUDE_TRACER|+define+TARGET_RTL|+define+TARGET_SIMULATION|+define+TARGET_TEST|+define+TARGET_VSIM|+define+COREV_ASSERT_OFF|+incdir+/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_interfaces.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_package.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_regfile_ff.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_regfile_latch.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_seq_mult.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_uloop.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_regfile_latch_test_wrap.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_regfile.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl/hwpe_ctrl_slave.sv| +!i113 0 +R11 +Z135 !s92 -suppress 2583 -suppress 13314 -suppress 8386 -sv +define+TARGET_CV32E40P_EXCLUDE_TRACER +define+TARGET_RTL +define+TARGET_SIMULATION +define+TARGET_TEST +define+TARGET_VSIM +define+COREV_ASSERT_OFF +incdir+/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-ctrl-6391b99ee5c90b6c/rtl +R13 +Xhwpe_ctrl_package +R2 +R3 +R131 +!i10b 1 +!s100 _965fSkZiJ1>2^c<1 +IGfS:JM]>43B`gYUB65?bd2 +!s105 hwpe_stream_assign_sv_unit +S1 +R1 +R5 +Z145 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_assign.sv +Z146 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_assign.sv +!i122 15 +L0 23 13 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Xhwpe_stream_assign_sv_unit +R2 +R3 +R88 +R22 +VEEDMVW4kHT_[UVY5D`;Ib0 +r1 +!s85 0 +!i10b 1 +!s100 J9P;CnU0MXY`c9C57Q70G1 +IEEDMVW4kHT_[UVY5D`;Ib0 +!i103 1 +S1 +R1 +R5 +R145 +R146 +!i122 15 +R106 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_buffer +r1 +R22 +R2 +R3 +R88 +DXx4 work 26 hwpe_stream_buffer_sv_unit 0 22 leDR>TdbMPS:f5g>AH^7jh?ek2HA0 +!s105 hwpe_stream_buffer_sv_unit +S1 +R1 +R5 +Z147 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_buffer.sv +Z148 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_buffer.sv +!i122 15 +L0 25 54 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Xhwpe_stream_buffer_sv_unit +R2 +R3 +R88 +R22 +VleDR>TdbMPS:fTdbMPS:fkW9>o=G]3 +I^M01zW@XUWn]oXl6SFdf03 +!i103 1 +S1 +R1 +R5 +R149 +R150 +!i122 15 +L0 42 0 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_deserialize +r1 +R22 +R2 +R3 +R88 +DXx4 work 31 hwpe_stream_deserialize_sv_unit 0 22 dRa4^aeJb=dnTGjkGRO3<1 +R6 +!i10b 1 +!s100 `l?9T4I2ePj3j;NaJf8:aK9m?b^fYUX0 +R6 +!i10b 1 +!s100 oi_TJLROh76R[Xnm8iI;I3 +IX>aJf8:aK9m?b^fYUX0 +r1 +!s85 0 +!i10b 1 +!s100 UE2GBVK]nJIRJQSM6kOIN0 +IFa43>aJf8:aK9m?b^fYUX0 +!i103 1 +S1 +R1 +R5 +R154 +R155 +!i122 15 +L0 41 0 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_fifo +r1 +R22 +R2 +R3 +R88 +DXx4 work 24 hwpe_stream_fifo_sv_unit 0 22 ]?8B9oQ58cPM4VFU71FW<3 +R6 +!i10b 1 +!s100 gAdR_knUBXHI?DB>>;4VL3 +I9m6aFoQcE]iLE]gOXMjAC3 +!s105 hwpe_stream_fifo_sv_unit +S1 +R1 +R5 +Z156 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo.sv +Z157 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo.sv +!i122 15 +L0 68 239 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_fifo_ctrl +r1 +R22 +R2 +R3 +R88 +DXx4 work 29 hwpe_stream_fifo_ctrl_sv_unit 0 22 2^i^]hm;c3mKX^UCE4lgN1 +R6 +!i10b 1 +!s100 14=YGemRDM6[_oHhfGiVk2 +I`kk5Ke0 +I2^i^]hm;c3mKX^UCE4lgN1 +!i103 1 +S1 +R1 +R5 +R158 +R159 +!i122 15 +Z160 L0 37 0 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_fifo_earlystall +r1 +R22 +R2 +R3 +R88 +DXx4 work 35 hwpe_stream_fifo_earlystall_sv_unit 0 22 ;<52^jBWbKXlz^LSd@GCZ2 +R6 +!i10b 1 +!s100 06=Z6ncGY=mKbW7jh7XjIT0E07Vg60 +!s105 hwpe_stream_fifo_earlystall_sv_unit +S1 +R1 +R5 +Z161 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo_earlystall.sv +Z162 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo_earlystall.sv +!i122 15 +L0 63 204 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_fifo_earlystall_sidech +r1 +R22 +R2 +R3 +R88 +DXx4 work 42 hwpe_stream_fifo_earlystall_sidech_sv_unit 0 22 fknM^Y0BNGzM]nzQZ11 +Ifk]^znlm3HO16GBJm=kf3 +IZY`@mc0>gY<5[NUz=d`Ti3 +!s105 hwpe_stream_fifo_passthrough_sv_unit +S1 +R1 +R5 +Z166 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo_passthrough.sv +Z167 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo_passthrough.sv +!i122 15 +L0 67 67 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Xhwpe_stream_fifo_passthrough_sv_unit +R2 +R3 +R88 +R22 +VC3:C4AnJifo3b07R^KV<;3 +r1 +!s85 0 +!i10b 1 +!s100 TUcE^O2]JhcAd6izn[V:>0 +IC3:C4AnJifo3b07R^KV<;3 +!i103 1 +S1 +R1 +R5 +R166 +R167 +!i122 15 +L0 65 0 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_fifo_scm +r1 +R22 +R2 +R3 +R88 +DXx4 work 28 hwpe_stream_fifo_scm_sv_unit 0 22 KYB?^RVan0NM:gU81=Z;K0 +R6 +!i10b 1 +!s100 LJ9DUK>_B4oMniPe2_62[3 +I7HT8UbIO;Q]Kj8?C@mR7d2 +!s105 hwpe_stream_fifo_scm_sv_unit +S1 +R1 +R5 +Z168 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo_scm.sv +Z169 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo_scm.sv +!i122 15 +L0 19 133 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Xhwpe_stream_fifo_scm_sv_unit +R2 +R3 +R88 +R22 +VKYB?^RVan0NM:gU81=Z;K0 +r1 +!s85 0 +!i10b 1 +!s100 =[41Fhm^1CEz3WEG1L;6B2 +IKYB?^RVan0NM:gU81=Z;K0 +!i103 1 +S1 +R1 +R5 +R168 +R169 +!i122 15 +R165 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_fifo_scm_test_wrap +r1 +R22 +R2 +R3 +R88 +DXx4 work 38 hwpe_stream_fifo_scm_test_wrap_sv_unit 0 22 6m;mG?AN[4^JaM9gg2=Q01 +R6 +!i10b 1 +!s100 ?MKz9;j`MmFHmPoWNbOnQ1 +Ia_?39KAHljC90F0T`VTzX3 +!s105 hwpe_stream_fifo_scm_test_wrap_sv_unit +S1 +R1 +R5 +Z170 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo_scm_test_wrap.sv +Z171 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo_scm_test_wrap.sv +!i122 15 +L0 19 71 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Xhwpe_stream_fifo_scm_test_wrap_sv_unit +R2 +R3 +R88 +R22 +V6m;mG?AN[4^JaM9gg2=Q01 +r1 +!s85 0 +!i10b 1 +!s100 JHVD?Q2S7WL9D8K8SSl=N2 +I6m;mG?AN[4^JaM9gg2=Q01 +!i103 1 +S1 +R1 +R5 +R170 +R171 +!i122 15 +R165 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_fifo_sidech +r1 +R22 +R2 +R3 +R88 +DXx4 work 31 hwpe_stream_fifo_sidech_sv_unit 0 22 h;]9b9gbePn_6N1@mN7413 +R6 +!i10b 1 +!s100 TZF_RRHRE>Q_XM^zjFZVD2 +I>VTB^`OX^^P85I[G:zTkX1 +!s105 hwpe_stream_fifo_sidech_sv_unit +S1 +R1 +R5 +Z172 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo_sidech.sv +Z173 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/fifo/hwpe_stream_fifo_sidech.sv +!i122 15 +L0 19 198 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Xhwpe_stream_fifo_sidech_sv_unit +R2 +R3 +R88 +R22 +Vh;]9b9gbePn_6N1@mN7413 +r1 +!s85 0 +!i10b 1 +!s100 =:D1PWM_]3dnR:V92gVfU1 +Ih;]9b9gbePn_6N1@mN7413 +!i103 1 +S1 +R1 +R5 +R172 +R173 +!i122 15 +R165 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Xhwpe_stream_fifo_sv_unit +R2 +R3 +R88 +R22 +V]?8B9oQ58cPM4VFU71FW<3 +r1 +!s85 0 +!i10b 1 +!s100 HX@CFEE;T_[>dR=Hd9=I91 +I]?8B9oQ58cPM4VFU71FW<3 +!i103 1 +S1 +R1 +R5 +R156 +R157 +!i122 15 +L0 66 0 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Yhwpe_stream_intf_stream +R2 +R3 +R22 +!i10b 1 +!s100 L;ZSfhieO:Y8a;WgNCF6@2 +IR;_S@l8Jna>=_d3oDb?i:1 +S1 +R1 +R5 +Z174 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/hwpe_stream_interfaces.sv +Z175 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/hwpe_stream_interfaces.sv +!i122 15 +L0 68 0 +R6 +R7 +r1 +!s85 0 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Yhwpe_stream_intf_tcdm +R2 +R3 +R22 +!i10b 1 +!s100 K6Yg1i6;hPa?0iN:CKQe63 +IM03nNa95a]Zggf<8?1oZX2 +S1 +R1 +R5 +R174 +R175 +!i122 15 +L0 20 0 +R6 +R7 +r1 +!s85 0 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_merge +r1 +R22 +R2 +R3 +R88 +DXx4 work 25 hwpe_stream_merge_sv_unit 0 22 LTzXoI>>P>HaJKP9n^1A_1 +R6 +!i10b 1 +!s100 F8YecBX>c4L2^m6^g2j4O2 +I1M@KL7LGU?bLXjAGai]]T0 +!s105 hwpe_stream_merge_sv_unit +S1 +R1 +R5 +Z176 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_merge.sv +Z177 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_merge.sv +!i122 15 +L0 49 39 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Xhwpe_stream_merge_sv_unit +R2 +R3 +R88 +R22 +VLTzXoI>>P>HaJKP9n^1A_1 +r1 +!s85 0 +!i10b 1 +!s100 2V4E@_cj8HdaSV1 +ILTzXoI>>P>HaJKP9n^1A_1 +!i103 1 +S1 +R1 +R5 +R176 +R177 +!i122 15 +R153 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_mux_static +r1 +R22 +R2 +R3 +R88 +DXx4 work 30 hwpe_stream_mux_static_sv_unit 0 22 8Hhb;K>Md0m@Gli1inCX61 +R6 +!i10b 1 +!s100 bj7^8HJdV49PL;PdABnnD1 +I5MmI]=nOz[76ff[MMFCT>3 +!s105 hwpe_stream_mux_static_sv_unit +S1 +R1 +R5 +Z178 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_mux_static.sv +Z179 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_mux_static.sv +!i122 15 +L0 33 21 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Xhwpe_stream_mux_static_sv_unit +R2 +R3 +R88 +R22 +V8Hhb;K>Md0m@Gli1inCX61 +r1 +!s85 0 +!i10b 1 +!s100 5HYj9`>Y_j8bf4he0QT;A0 +I8Hhb;K>Md0m@Gli1inCX61 +!i103 1 +S1 +R1 +R5 +R178 +R179 +!i122 15 +L0 31 0 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Xhwpe_stream_package +R2 +R3 +R22 +!i10b 1 +!s100 6B37NjcnBTB]MW`oGemBZ1 +Idcb50[dnca;d?4hDB01c=2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/hwpe_stream_package.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/hwpe_stream_package.sv +!i122 15 +R98 +Vdcb50[dnca;d?4hDB01c=2 +R7 +r1 +!s85 0 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_serialize +r1 +R22 +R2 +R3 +R88 +DXx4 work 29 hwpe_stream_serialize_sv_unit 0 22 aYmL5oBD^H7PH=H]LjNAa1 +R6 +!i10b 1 +!s100 l6MlN@7?nk4YHXT=7I?X>1 +I7TiRB?7JNdg=e]`G:2oRz1 +!s105 hwpe_stream_serialize_sv_unit +S1 +R1 +R5 +Z180 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_serialize.sv +Z181 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_serialize.sv +!i122 15 +L0 60 113 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Xhwpe_stream_serialize_sv_unit +R2 +R3 +R88 +R22 +VaYmL5oBD^H7PH=H]LjNAa1 +r1 +!s85 0 +!i10b 1 +!s100 88T>Db5W3 +IaYmL5oBD^H7PH=H]LjNAa1 +!i103 1 +S1 +R1 +R5 +R180 +R181 +!i122 15 +L0 58 0 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_sink +r1 +R22 +R2 +R3 +R88 +DXx4 work 24 hwpe_stream_sink_sv_unit 0 22 f7eE2hF0D24fzF88=J?W2 +R6 +!i10b 1 +!s100 5Lj=Y519;m?fhF0D24fzF88=J?W2 +r1 +!s85 0 +!i10b 1 +!s100 `a>VL4k4Z^fJ9kkzgAZnD0 +IOD6hm>hF0D24fzF88=J?W2 +!i103 1 +S1 +R1 +R5 +R184 +R185 +!i122 15 +L0 56 0 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Xhwpe_stream_sink_sv_unit +R2 +R3 +R88 +R22 +Vf7eE2;]OVW[W[K6gNZB1 +Ij6Mg6JegQ?G@j>56^UFe91 +!s105 hwpe_stream_source_realign_sv_unit +S1 +R1 +R5 +Z188 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/streamer/hwpe_stream_source_realign.sv +Z189 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/streamer/hwpe_stream_source_realign.sv +!i122 15 +L0 72 267 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Xhwpe_stream_source_realign_sv_unit +R2 +R3 +R88 +R22 +V6zQ^cjCFZ:knoRk[ebd[K@4Z=XKTd1L0mPW<`1 +IKN;6OH3B?[A_75PaG5O853 +!s105 hwpe_stream_split_sv_unit +S1 +R1 +R5 +Z190 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_split.sv +Z191 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/basic/hwpe_stream_split.sv +!i122 15 +L0 49 40 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Xhwpe_stream_split_sv_unit +R2 +R3 +R88 +R22 +VPoC54I]a92Yafc9fY1eIQ0 +r1 +!s85 0 +!i10b 1 +!s100 demQaVJ1CZ7XeXADVK;>C1 +IPoC54I]a92Yafc9fY1eIQ0 +!i103 1 +S1 +R1 +R5 +R190 +R191 +!i122 15 +R153 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_strbgen +r1 +R22 +R2 +R3 +R88 +DXx4 work 27 hwpe_stream_strbgen_sv_unit 0 22 V=2n^;AIAe0TA1gzMR?gn2 +R6 +!i10b 1 +!s100 AZBIBKU32nK=iC9O:SoBm1 +IN7Ah_e`o68VkIgk4fRKKa1 +!s105 hwpe_stream_strbgen_sv_unit +S1 +R1 +R5 +Z192 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/streamer/hwpe_stream_strbgen.sv +Z193 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/streamer/hwpe_stream_strbgen.sv +!i122 15 +L0 64 55 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Xhwpe_stream_strbgen_sv_unit +R2 +R3 +R88 +R22 +VV=2n^;AIAe0TA1gzMR?gn2 +r1 +!s85 0 +!i10b 1 +!s100 ?K0@gkbaOMnUb49?m_P]^0 +IV=2n^;AIAe0TA1gzMR?gn2 +!i103 1 +S1 +R1 +R5 +R192 +R193 +!i122 15 +L0 62 0 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_streamer_queue +r1 +R22 +R2 +R3 +R88 +DXx4 work 34 hwpe_stream_streamer_queue_sv_unit 0 22 zaIY7]j]UGBGZ[dk[;1`U3 +R6 +!i10b 1 +!s100 ce`4gQCLZ=znKGXa;<9O93 +IT7DGfg?aW:B_Pn0giZ_=02 +!s105 hwpe_stream_streamer_queue_sv_unit +S1 +R1 +R5 +Z194 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/streamer/hwpe_stream_streamer_queue.sv +Z195 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/streamer/hwpe_stream_streamer_queue.sv +!i122 15 +L0 18 88 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Xhwpe_stream_streamer_queue_sv_unit +R2 +R3 +R88 +R22 +VzaIY7]j]UGBGZ[dk[;1`U3 +r1 +!s85 0 +!i10b 1 +!s100 k]?X4Z4NO:<2DocVSJ5FJ1 +IzaIY7]j]UGBGZ[dk[;1`U3 +!i103 1 +S1 +R1 +R5 +R194 +R195 +!i122 15 +R98 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_tcdm_assign +r1 +R22 +R2 +R3 +R88 +DXx4 work 31 hwpe_stream_tcdm_assign_sv_unit 0 22 ^4cM:?MFHK:Nbc;[71a??A<>1 +R6 +!i10b 1 +!s100 SF1WPMM?JDPNlzjz[`2iN0 +I^;71a??A<>1 +r1 +!s85 0 +!i10b 1 +!s100 nHMX6STHe4LYAKGOLN^iU1 +INil=JzjjgHnZ>71a??A<>1 +!i103 1 +S1 +R1 +R5 +R198 +R199 +!i122 15 +L0 86 0 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_tcdm_mux +r1 +R22 +R2 +R3 +R88 +DXx4 work 28 hwpe_stream_tcdm_mux_sv_unit 0 22 fzkF==??kiLjS>DU<9_]_1 +R6 +!i10b 1 +!s100 9@1YQokEf2Jc]SN_aiCz4<0 +!s105 hwpe_stream_tcdm_mux_sv_unit +S1 +R1 +R5 +Z206 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/tcdm/hwpe_stream_tcdm_mux.sv +Z207 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/tcdm/hwpe_stream_tcdm_mux.sv +!i122 15 +L0 49 241 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_tcdm_mux_static +r1 +R22 +R2 +R3 +R88 +DXx4 work 35 hwpe_stream_tcdm_mux_static_sv_unit 0 22 ;3afYI9h4SWE@G@N831lR1 +R6 +!i10b 1 +!s100 =cT5UfGEjC_e6W@HgMUS10 +IV2LA^45>3=C_l_j:Q5>FT1 +!s105 hwpe_stream_tcdm_mux_static_sv_unit +S1 +R1 +R5 +Z208 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/tcdm/hwpe_stream_tcdm_mux_static.sv +Z209 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/tcdm/hwpe_stream_tcdm_mux_static.sv +!i122 15 +L0 39 34 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Xhwpe_stream_tcdm_mux_static_sv_unit +R2 +R3 +R88 +R22 +V;3afYI9h4SWE@G@N831lR1 +r1 +!s85 0 +!i10b 1 +!s100 5NioF]K?42P0kb_W]GN^z3 +I;3afYI9h4SWE@G@N831lR1 +!i103 1 +S1 +R1 +R5 +R208 +R209 +!i122 15 +R160 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +Xhwpe_stream_tcdm_mux_sv_unit +R2 +R3 +R88 +R22 +VfzkF==??kiLjS>DU<9_]_1 +r1 +!s85 0 +!i10b 1 +!s100 ][ZB;M_DU<9_]_1 +!i103 1 +S1 +R1 +R5 +R206 +R207 +!i122 15 +R153 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_tcdm_reorder +r1 +R22 +R2 +R3 +R88 +DXx4 work 32 hwpe_stream_tcdm_reorder_sv_unit 0 22 907i;6OMANJ6<5ioDICBQW=g>Nk:f>dl00 +!s105 hwpe_stream_tcdm_reorder_sv_unit +S1 +R1 +R5 +Z210 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/tcdm/hwpe_stream_tcdm_reorder.sv +Z211 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/tcdm/hwpe_stream_tcdm_reorder.sv +!i122 15 +L0 38 112 +R7 +31 +R24 +R138 +R139 +!i113 0 +R11 +R140 +R13 +vhwpe_stream_tcdm_reorder_static +r1 +R22 +R2 +R3 +R88 +DXx4 work 39 hwpe_stream_tcdm_reorder_static_sv_unit 0 22 kPE?a6_HOB15a;RSX@oJQR2`AR2@KV6NmV3 +I907i;6OMANJ6<5ioDIogn;1 +I2M?dB@c:JXm:9mD0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/verif/hwpe_stream_traffic_recv.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/hwpe-stream-11876d121d6ecdf0/rtl/verif/hwpe_stream_traffic_recv.sv +!i122 16 +L0 21 77 +R6 +R7 +r1 +!s85 0 +31 +R24 +R216 +R217 +!i113 0 +R11 +R140 +R13 +vibex_alu +Z218 !s10a 1730975703 +R3 +Z219 DXx4 work 8 ibex_pkg 0 22 J3CGI8XT_DGaKeV4AS0h22 +R131 +!i10b 1 +!s100 7IXOLW7L5XD_ZG9LE_ER`2 +IRzL?i]eTZD0[cRg]QLMiF0 +S1 +R1 +Z220 w1730975703 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_alu.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_alu.sv +!i122 21 +L0 9 1263 +R6 +R7 +r1 +!s85 0 +31 +R132 +Z221 !s107 /home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/vendor/lowrisc_ip/ip/prim/rtl/prim_assert_standard_macros.svh|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_core_tracing.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_core.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_if_stage.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_tracer.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_prefetch_buffer.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_id_stage.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_ex_block.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_cs_registers.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_wb_stage.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_tracer_pkg.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_pmp.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_multdiv_slow.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_multdiv_fast.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_load_store_unit.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_fetch_fifo.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_decoder.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_csr.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_counter.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_controller.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_compressed_decoder.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_alu.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/vendor/lowrisc_ip/ip/prim/rtl/prim_assert.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_register_file_ff.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_pkg.sv| +Z222 !s90 -incr|-sv|-suppress|2583|-suppress|13314|-suppress|8386|+define+RVFI=true|+define+TARGET_CV32E40P_EXCLUDE_TRACER|+define+TARGET_RTL|+define+TARGET_SIMULATION|+define+TARGET_TEST|+define+TARGET_VSIM|+define+COREV_ASSERT_OFF|+incdir+/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl|+incdir+/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/vendor/lowrisc_ip/ip/prim/rtl|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_pkg.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_register_file_ff.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/vendor/lowrisc_ip/ip/prim/rtl/prim_assert.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_alu.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_compressed_decoder.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_controller.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_counter.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_csr.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_decoder.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_fetch_fifo.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_load_store_unit.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_multdiv_fast.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_multdiv_slow.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_pmp.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_tracer_pkg.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_wb_stage.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_cs_registers.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_ex_block.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_id_stage.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_prefetch_buffer.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_tracer.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_if_stage.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_core.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_core_tracing.sv| +!i113 0 +R11 +Z223 !s92 -suppress 2583 -suppress 13314 -suppress 8386 -sv +define+RVFI=true +define+TARGET_CV32E40P_EXCLUDE_TRACER +define+TARGET_RTL +define+TARGET_SIMULATION +define+TARGET_TEST +define+TARGET_VSIM +define+COREV_ASSERT_OFF +incdir+/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl +incdir+/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/vendor/lowrisc_ip/ip/prim/rtl +R13 +vibex_compressed_decoder +R218 +R3 +R219 +R131 +!i10b 1 +!s100 H?7elDdg=C4VeMTh]SgEm0 +IgL9Xlf056Oi@eHDW2fmZB0 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_compressed_decoder.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_compressed_decoder.sv +!i122 21 +L0 16 285 +R6 +R7 +r1 +!s85 0 +31 +R132 +R221 +R222 +!i113 0 +R11 +R223 +R13 +vibex_controller +R218 +R3 +R219 +R131 +!i10b 1 +!s100 @?TH8j>4Go3D[9S]kFWTn2 +I[[j6i:K8H[5@]NQ^U4;LB2 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_controller.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_controller.sv +!i122 21 +L0 12 887 +R6 +R7 +r1 +!s85 0 +31 +R132 +R221 +R222 +!i113 0 +R11 +R223 +R13 +vibex_core +R218 +R3 +R219 +R131 +!i10b 1 +!s100 ]ZWEkBFCV8hbLmWfkoFBNPzLcQ3 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_core.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_core.sv +!i122 21 +L0 15 1460 +R6 +R7 +r1 +!s85 0 +31 +R132 +R221 +R222 +!i113 0 +R11 +R223 +R13 +vibex_core_tracing +R218 +R3 +R219 +R131 +!i10b 1 +!s100 KUUDCOdN4bDNI8XkfX;mK2 +Ih]OdQC9j>d9Th:1WRFbGn1 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_core_tracing.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_core_tracing.sv +!i122 21 +L0 9 225 +R6 +R7 +r1 +!s85 0 +31 +R132 +R221 +R222 +!i113 0 +R11 +R223 +R13 +vibex_counter +R218 +R3 +R131 +!i10b 1 +!s100 :T>DW[09P0o65f0=57M4j3 +IkGLnB=I4WPT>o^fbd^>mk3 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_counter.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_counter.sv +!i122 21 +L0 1 79 +R6 +R7 +r1 +!s85 0 +31 +R132 +R221 +R222 +!i113 0 +R11 +R223 +R13 +vibex_cs_registers +R218 +R3 +R219 +R131 +!i10b 1 +!s100 G06^4EOD=D4I1cPE0 +IT9QdScDe^M1^ROdlX2ef[:jfoDOd[:<1IP4]LLh2 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_csr.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_csr.sv +!i122 21 +L0 11 47 +R6 +R7 +r1 +!s85 0 +31 +R132 +R221 +R222 +!i113 0 +R11 +R223 +R13 +vibex_decoder +R218 +R3 +R219 +R131 +!i10b 1 +!s100 62U<[F?aIL2hSzk6L;`h<3 +I7Y[XQCz@f_FGIzj_C2XcB1 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_decoder.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_decoder.sv +!i122 21 +L0 16 1140 +R6 +R7 +r1 +!s85 0 +31 +R132 +R221 +R222 +!i113 0 +R11 +R223 +R13 +vibex_ex_block +R218 +R3 +R219 +R131 +!i10b 1 +!s100 :bKecaBF=@k5ed4i[8EXa3 +IW?9Q215`ogAILE@TKQGMN1 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_ex_block.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_ex_block.sv +!i122 21 +L0 11 189 +R6 +R7 +r1 +!s85 0 +31 +R132 +R221 +R222 +!i113 0 +R11 +R223 +R13 +vibex_fetch_fifo +R218 +R3 +R131 +!i10b 1 +!s100 mb4C>:e^SHe@Bkz2RBMZO3 +I_h2d7Y6oG3SUaFd3?MN8c3 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_fetch_fifo.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_fetch_fifo.sv +!i122 21 +L0 15 236 +R6 +R7 +r1 +!s85 0 +31 +R132 +R221 +R222 +!i113 0 +R11 +R223 +R13 +vibex_id_stage +R218 +R3 +R219 +R131 +!i10b 1 +!s100 Aj]dDRo[4noHzH;RH8eM?1b2 +I@oRfQSIVZJ@J9S`Fmn;@`3 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_multdiv_slow.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_multdiv_slow.sv +!i122 21 +L0 14 361 +R6 +R7 +r1 +!s85 0 +31 +R132 +R221 +R222 +!i113 0 +R11 +R223 +R13 +Xibex_pkg +R218 +R3 +R131 +!i10b 1 +!s100 TPH35djMe;HlolX5_O@dg2 +IJ3CGI8XT_DGaKeV4AS0h22 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_pkg.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_pkg.sv +!i122 21 +L0 9 0 +VJ3CGI8XT_DGaKeV4AS0h22 +R7 +r1 +!s85 0 +31 +R132 +R221 +R222 +!i113 0 +R11 +R223 +R13 +vibex_pmp +R218 +R3 +R219 +R131 +!i10b 1 +!s100 e0zbB11f<_8jnBgzHkNLn3 +I1J939:R[``M9=aDUD3SfX0 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_pmp.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_pmp.sv +!i122 21 +L0 5 129 +R6 +R7 +r1 +!s85 0 +31 +R132 +R221 +R222 +!i113 0 +R11 +R223 +R13 +vibex_prefetch_buffer +R218 +R3 +R131 +!i10b 1 +!s100 D]7DFfo;B[3 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_prefetch_buffer.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_prefetch_buffer.sv +!i122 21 +L0 12 309 +R6 +R7 +r1 +!s85 0 +31 +R132 +R221 +R222 +!i113 0 +R11 +R223 +R13 +vibex_register_file_ff +R3 +R108 +!i10b 1 +!s100 =hPQ>5YIWYngBRoR44CNJ3 +IK6dA4no2H]JIC7N0@8UPV3 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_register_file_ff.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_register_file_ff.sv +!i122 325 +L0 13 90 +R6 +R7 +r1 +!s85 0 +31 +R112 +R221 +R222 +!i113 0 +R11 +R223 +R13 +vibex_register_file_fpga +R218 +R3 +R131 +!i10b 1 +!s100 _hVDkFFk1AC@4[az:dnMJ1 +IDQ_ljUT0T=EEcBRECdFIh2 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_register_file_fpga.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_register_file_fpga.sv +!i122 20 +L0 14 57 +R6 +R7 +r1 +!s85 0 +31 +R132 +Z224 !s107 /home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_register_file_fpga.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_register_file_ff.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_register_file_latch.sv| +Z225 !s90 -incr|-sv|-suppress|2583|-suppress|13314|-suppress|8386|+define+TARGET_CV32E40P_EXCLUDE_TRACER|+define+TARGET_RTL|+define+TARGET_SIMULATION|+define+TARGET_TEST|+define+TARGET_VSIM|+define+COREV_ASSERT_OFF|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_register_file_latch.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_register_file_ff.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_register_file_fpga.sv| +!i113 0 +R11 +R27 +R13 +vibex_register_file_latch +R218 +R3 +R131 +!i10b 1 +!s100 l^J?3jmzW=;E3n0OH2Wn:3 +Ia?@zQ>]KY>fY@UFO^X@d_3 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_register_file_latch.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_register_file_latch.sv +!i122 20 +L0 14 149 +R6 +R7 +r1 +!s85 0 +31 +R132 +R224 +R225 +!i113 0 +R11 +R27 +R13 +vibex_tracer +R218 +R3 +R219 +DXx4 work 15 ibex_tracer_pkg 0 22 BU`mA6akL44KYzkANPH;?1 +R131 +!i10b 1 +!s100 I3;o?6hZ7i^GfLGlW_l2A1 +IzCVj[j_ZT0Unl^ZIE5m0b3 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_tracer.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_tracer.sv +!i122 21 +L0 37 1014 +R6 +R7 +r1 +!s85 0 +31 +R132 +R221 +R222 +!i113 0 +R11 +R223 +R13 +Xibex_tracer_pkg +R218 +R3 +R219 +R131 +!i10b 1 +!s100 ima8ijL[@b75aKzFKfhQ=3 +IBU`mA6akL44KYzkANPH;?1 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_tracer_pkg.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_tracer_pkg.sv +!i122 21 +L0 6 0 +VBU`mA6akL44KYzkANPH;?1 +R7 +r1 +!s85 0 +31 +R132 +R221 +R222 +!i113 0 +R11 +R223 +R13 +vibex_wb_stage +R218 +R3 +R219 +R131 +!i10b 1 +!s100 jB1^cHzR?8?d9;n^1A>on3 +IYOQd?HkSGZo_V?U:QZ5f62 +S1 +R1 +R220 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_wb_stage.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/ibex-0d71cebc1d9540af/rtl/ibex_wb_stage.sv +!i122 21 +L0 16 161 +R6 +R7 +r1 +!s85 0 +31 +R132 +R221 +R222 +!i113 0 +R11 +R223 +R13 +vid_queue +R2 +R3 +R14 +R15 +!i10b 1 +!s100 5>I1ZlBU:g]iVnTmW5o683 +I;P`;Di80D@mBZDJRc?_di2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/id_queue.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/id_queue.sv +!i122 10 +L0 48 373 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +vid_queue_tb +R2 +R3 +DXx4 work 17 rand_id_queue_pkg 0 22 8VZA@hl?R3@5dE]^1 +Ik_7EUzR@QMXH?2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/id_queue_tb.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/id_queue_tb.sv +!i122 12 +L0 11 252 +R6 +R7 +r1 +!s85 0 +31 +R8 +R20 +R21 +!i113 0 +R11 +R19 +R13 +visochronous_4phase_handshake +R2 +R3 +R15 +!i10b 1 +!s100 VZJ8Uz2D??zJ==ln9MXVX1 +IdOXd:fl14`L=G7oJNQOjg2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/isochronous_4phase_handshake.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/isochronous_4phase_handshake.sv +!i122 9 +L0 43 39 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +visochronous_crossing_tb +R2 +R3 +R55 +R4 +!i10b 1 +!s100 F>Va85S^znW@=9>SA8<>E2 +I>U6dfKR_@NbPUbGQ5Ulio3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/isochronous_crossing_tb.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/isochronous_crossing_tb.sv +!i122 12 +L0 19 168 +R6 +R7 +r1 +!s85 0 +31 +R8 +R20 +R21 +!i113 0 +R11 +R19 +R13 +visochronous_spill_register +R2 +R3 +R15 +!i10b 1 +!s100 CV8I0z]QSmJ_:GNLUkj`z3 +I78NEnBF[j2@Xg8fO@L;FP1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/isochronous_spill_register.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/isochronous_spill_register.sv +!i122 9 +L0 40 72 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vl2_tcdm_demux +R2 +R3 +R22 +!i10b 1 +!s100 e;fz1kHl`gWUib?L1FFPD0 +IBlDjAQn=H7lR29mbOjNLL0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/l2_tcdm_demux.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/l2_tcdm_demux.sv +!i122 17 +L0 11 314 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +vlfsr +R2 +R3 +R15 +!i10b 1 +!s100 DghVOS4]G3G?YhUz_[lB;2 +IjhoZAdH>RAkCQ81MHjK;P1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/lfsr.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/lfsr.sv +!i122 9 +L0 22 293 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vlfsr_16bit +R2 +R3 +R15 +!i10b 1 +!s100 0jRIk@N?Xn0m2gNSN1MIO3 +IJ4Pmm801MCK>VmbhdF[hc3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/lfsr_16bit.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/lfsr_16bit.sv +!i122 9 +L0 21 50 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vlfsr_8bit +R2 +R3 +R15 +!i10b 1 +!s100 eoJO?oY6=2ZnnK8`OzdXH0 +IHMLOAdIiocDWi:a=[nM772 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/lfsr_8bit.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/lfsr_8bit.sv +!i122 9 +L0 17 47 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vlint64_to_32 +R2 +R3 +R22 +!i10b 1 +!s100 Qz;;l`lZSoHR^9Y4DLLzG1 +IMTj>[R8a@@XIH2Fo;Z^gM1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/axi_2_lint/lint64_to_32.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/axi_2_lint/lint64_to_32.sv +!i122 17 +L0 11 421 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +vlint_2_apb +R2 +R3 +R22 +!i10b 1 +!s100 dSJnJ20U2fU8KPL:F=f::0 +I:@lRYbLBT0O?G`5`Dl6YW3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/lint_2_apb.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/lint_2_apb.sv +!i122 17 +L0 12 185 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +vlint_2_axi +R2 +R3 +R22 +!i10b 1 +!s100 Cm?@GH:jD?[1TOOLS7I9zG1 +Ik]Z86??NN3X=_hkIfn>G73 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/lossy_valid_to_stream.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/lossy_valid_to_stream.sv +!i122 9 +L0 49 91 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vlossy_valid_to_stream_tb +R2 +R3 +R55 +R4 +!i10b 1 +!s100 zfI>GiPL@0NIS:6T4ebUC0 +IZohRHoPXa[UmAIoc3KC9j3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/lossy_valid_to_stream_tb.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/lossy_valid_to_stream_tb.sv +!i122 12 +L0 16 94 +R6 +R7 +r1 +!s85 0 +31 +R8 +R20 +R21 +!i113 0 +R11 +R19 +R13 +vlzc +R2 +R3 +R14 +R15 +!i10b 1 +!s100 WiSGhK^<[EbiTFI4_k@TD1 +ISd`1NXlW@XdTfNDWm?nRV3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/lzc.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/lzc.sv +!i122 10 +L0 15 99 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +vmax_counter +R2 +R3 +R15 +!i10b 1 +!s100 3Z^=a=^IP?4OC9NT01Q?K1 +I<50Le2cS@chbXfWA;_P@?3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/max_counter.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/max_counter.sv +!i122 10 +L0 13 65 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +vmem_to_banks +R2 +R3 +R15 +!i10b 1 +!s100 zj^[`1KSET`@VWXXCWXGg0 +IU72iNKYDj?GY1lH:Mji?Z1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/mem_to_banks.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/mem_to_banks.sv +!i122 10 +L0 15 106 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +vmem_to_banks_detailed +R2 +R3 +R15 +!i10b 1 +!s100 I<07id_?31f0 +IHUdB88cEDO0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/MUX2_REQ.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/MUX2_REQ.sv +!i122 14 +L0 46 94 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@m@u@x2_@r@e@q +vMUX2_REQ_BRIDGE +R2 +R3 +R22 +!i10b 1 +!s100 jz4TCU@`]aT`dT?CSBfz:3 +Il1ENS5[9ED@k;aF::OkgB0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/MUX2_REQ_BRIDGE.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/MUX2_REQ_BRIDGE.sv +!i122 17 +L0 11 85 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +n@m@u@x2_@r@e@q_@b@r@i@d@g@e +vMUX2_REQ_L2 +R2 +R3 +R22 +!i10b 1 +!s100 emkAM6m5:GIGa3OdSjz>X@04GM1 +IaS7D;LoCJSdQ1T_h6iFnk0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/MUX2_REQ_PE.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/MUX2_REQ_PE.sv +!i122 14 +L0 47 96 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@m@u@x2_@r@e@q_@p@e +vmv_filter +R2 +R3 +R15 +!i10b 1 +!s100 ;FLRbZBFX[]@jZzDcJLLn0 +IV::GR@[`gmZMI^_X=_P=P1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/mv_filter.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/mv_filter.sv +!i122 9 +Z226 L0 13 43 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vonehot_to_bin +R2 +R3 +R15 +!i10b 1 +!s100 Q45h:iUCMkCI4=@Uzcg3J2 +Ifi]8BSLX3ME;H?17ojYj0 +S1 +R1 +R5 +R227 +R228 +!i122 4 +L0 48 35 +R6 +R7 +r1 +!s85 0 +31 +R68 +R80 +R81 +!i113 0 +R11 +R27 +R13 +vpassthrough_stream_fifo +R2 +R3 +R15 +!i10b 1 +!s100 6AYd56Cmih0[HzgI8_@>K3;M;_obhP4;l_3Ae3 +Ij]hIbg[?Vn[jMDzk0ofGL2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/plru_tree.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/plru_tree.sv +!i122 9 +L0 17 117 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vpopcount +R2 +R3 +R15 +!i10b 1 +!s100 A;4P2EXCe5:o_Jimgg8jM2 +Ii3BZ[^C@KNh:S1iGTUP^U2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/popcount.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/popcount.sv +!i122 9 +L0 22 19 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vpopcount_tb +R2 +R3 +R4 +!i10b 1 +!s100 N:Yg6[ja7cY[a_`^]SUWk0 +IY42TOgSjkcMI_NI[2[bS23 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/popcount_tb.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/popcount_tb.sv +!i122 12 +L0 31 150 +R6 +R7 +r1 +!s85 0 +31 +R8 +R20 +R21 +!i113 0 +R11 +R19 +R13 +vprioarbiter +R2 +R3 +R4 +!i10b 1 +!s100 MC8LF0_hRKFD6Z@FWD9PN2 +I4I:`iSzfzzjL`R;]2N=0=3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/prioarbiter.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/prioarbiter.sv +!i122 13 +L0 18 69 +R6 +R7 +r1 +!s85 0 +31 +R8 +R53 +R54 +!i113 0 +R11 +R19 +R13 +vpriority_Flag_Req +R2 +R3 +R4 +!i10b 1 +!s100 _WN5=RDZ8[??Ze1m]ImJB3 +I496_3oNH^IMk=RoE]gZok0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/priority_Flag_Req.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/priority_Flag_Req.sv +!i122 14 +L0 49 46 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +npriority_@flag_@req +vpulp_buffer +R2 +R3 +R76 +!i10b 1 +!s100 iB33:OHk_Qd@i^_DXW=Hk3 +Ib5dbTcEZEK<;jR?_VkPDk0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/pulp_buffer.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/pulp_buffer.sv +!i122 4 +Z229 L0 11 9 +R6 +R7 +r1 +!s85 0 +31 +R68 +R80 +R81 +!i113 0 +R11 +R27 +R13 +vpulp_clock_and2 +R2 +R3 +R15 +!i10b 1 +!s100 IdLI4:deSkR5im:3kQZ332 +IllcJJ5`TEdQ9n8e>DQBn`2 +S1 +R1 +R5 +Z230 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/pulp_clk_cells.sv +Z231 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/pulp_clk_cells.sv +!i122 7 +R67 +R6 +R7 +r1 +!s85 0 +31 +R68 +R69 +R70 +!i113 0 +R11 +R27 +R13 +vpulp_clock_buffer +R2 +R3 +R15 +!i10b 1 +!s100 :mBbD2J>42F>Lc4bRhn5TjZlY1 +S1 +R1 +R5 +R230 +R231 +!i122 7 +R71 +R6 +R7 +r1 +!s85 0 +31 +R68 +R69 +R70 +!i113 0 +R11 +R27 +R13 +vpulp_clock_delay +R2 +R3 +R15 +!i10b 1 +!s100 ZdAIz`JW6[3o2hLaLNEUj0 +IU>R[[Kja9?:bG4zzPAb_^1 +S1 +R1 +R5 +R230 +R231 +!i122 7 +L0 97 8 +R6 +R7 +r1 +!s85 0 +31 +R68 +R69 +R70 +!i113 0 +R11 +R27 +R13 +vpulp_clock_gating +R2 +R3 +R15 +!i10b 1 +!s100 Bg`HPZg@aHG4l2kDfR?hi2 +I:zTGH:0FWekHV^_kJQ0lM1 +S1 +R1 +R5 +R230 +R231 +!i122 7 +R72 +R6 +R7 +r1 +!s85 0 +31 +R68 +R69 +R70 +!i113 0 +R11 +R27 +R13 +vpulp_clock_gating_async +R2 +R3 +R15 +!i10b 1 +!s100 lUlSOF`2YdlZc;2`7iPP03 +IKi7`:P`@[7jOiiXA8l0Jf2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/pulp_clock_gating_async.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/pulp_clock_gating_async.sv +!i122 7 +L0 13 32 +R6 +R7 +r1 +!s85 0 +31 +R68 +R69 +R70 +!i113 0 +R11 +R27 +R13 +vpulp_clock_inverter +R2 +R3 +R15 +!i10b 1 +!s100 T0TnkOF0QEAk2AaN35@ooUWTl3 +S1 +R1 +R5 +R230 +R231 +!i122 7 +R74 +R6 +R7 +r1 +!s85 0 +31 +R68 +R69 +R70 +!i113 0 +R11 +R27 +R13 +vpulp_clock_xor2 +R2 +R3 +R15 +!i10b 1 +!s100 M41D9Lb;azkSgI?e?O`bz1 +IP0BXHGoWCdic3 +ISzljRaWj6;796h]j6Lnnj3 +S1 +R1 +R5 +Z232 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/pulp_pwr_cells.sv +Z233 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/deprecated/pulp_pwr_cells.sv +!i122 4 +L0 70 9 +R6 +R7 +r1 +!s85 0 +31 +R68 +R80 +R81 +!i113 0 +R11 +R27 +R13 +vpulp_isolation_1 +R2 +R3 +R76 +!i10b 1 +!s100 T`KM56kCWfnm953hnQgL[1 +I@R_eHk1zRP^bnZ3Qj0UAH2 +S1 +R1 +R5 +R232 +R233 +!i122 4 +L0 80 9 +R6 +R7 +r1 +!s85 0 +31 +R68 +R80 +R81 +!i113 0 +R11 +R27 +R13 +vpulp_level_shifter_in +R2 +R3 +R76 +!i10b 1 +!s100 Elf]F8_AT^OafRLXSNHzEP:WT<447;da8gFD73 +Imei8MdUBH6kDnCan3ZCUn3 +S1 +R1 +R5 +R232 +R233 +!i122 4 +R83 +R6 +R7 +r1 +!s85 0 +31 +R68 +R80 +R81 +!i113 0 +R11 +R27 +R13 +vpulp_level_shifter_out +R2 +R3 +R76 +!i10b 1 +!s100 kagj5Sl4=XYh@ig0KCHNR1 +I>k7OXZHIZ1C3EU3bzLN3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/pulp_sync.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/pulp_sync.sv +!i122 13 +L0 13 24 +R6 +R7 +r1 +!s85 0 +31 +R8 +R53 +R54 +!i113 0 +R11 +R19 +R13 +vpulp_sync_wedge +R2 +R3 +R4 +!i10b 1 +!s100 =MlS0QN4E[lHYN9B_ObAG2 +IFi>62EMKbehPz:TE0[U@e3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/pulp_sync_wedge.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/pulp_sync_wedge.sv +!i122 13 +R226 +R6 +R7 +r1 +!s85 0 +31 +R8 +R53 +R54 +!i113 0 +R11 +R19 +R13 +Xrand_id_queue_pkg +R58 +R3 +R59 +!i10b 1 +!s100 6R_z>n44SM4UBQld2 +IClQIj15Hn`JA3J?d?44Y81 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_synch_driver.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_synch_driver.sv +!i122 0 +L0 12 28 +R6 +R7 +r1 +!s85 0 +31 +R61 +R62 +R63 +!i113 0 +R11 +R27 +R13 +vrand_synch_holdable_driver +R58 +R3 +R59 +!i10b 1 +!s100 iBHHM9?ZQTIK04e13I;n:0 +IV?1LfN7=BTSLcGighQMQY2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_synch_holdable_driver.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/rand_synch_holdable_driver.sv +!i122 0 +R60 +R6 +R7 +r1 +!s85 0 +31 +R61 +R62 +R63 +!i113 0 +R11 +R27 +R13 +Xrand_verif_pkg +R58 +R3 +!s110 1734528055 +!i10b 1 +!s100 g3d?N;V23iQD]aS4Ga5Mm3 +INg6:g2g@_UC0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/RequestBlock1CH.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/RequestBlock1CH.sv +!i122 14 +L0 50 289 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@request@block1@c@h +vRequestBlock1CH_BRIDGE +R2 +R3 +R22 +!i10b 1 +!s100 DoZ:iC844:`Z]AodMH>B=1 +I@[]NgSeDCh@ebBC=bN_LC1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/RequestBlock1CH_BRIDGE.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/RequestBlock1CH_BRIDGE.sv +!i122 17 +L0 12 182 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +n@request@block1@c@h_@b@r@i@d@g@e +vRequestBlock1CH_PE +R2 +R3 +R4 +!i10b 1 +!s100 Q^97O9Yo[ic1QlZThY@MA0 +I`W9EcZfM^1LS[1nBB8ozP3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/RequestBlock1CH_PE.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/RequestBlock1CH_PE.sv +!i122 14 +L0 52 203 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@request@block1@c@h_@p@e +vRequestBlock2CH +R2 +R3 +R4 +!i10b 1 +!s100 GGz9MdJH=@ET8YPQk0S];1 +Ih:D^Bi]MWO0 +I8]aRka_:i;F4Pj40M[>ml2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/RequestBlock2CH_BRIDGE.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/RequestBlock2CH_BRIDGE.sv +!i122 17 +L0 12 506 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +n@request@block2@c@h_@b@r@i@d@g@e +vRequestBlock2CH_PE +R2 +R3 +R4 +!i10b 1 +!s100 a3NgaG=;R5>]TYG>coBZ?0 +IV547dG_FMQ0]T3_eNW[k;0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/RequestBlock2CH_PE.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/RequestBlock2CH_PE.sv +!i122 14 +L0 49 558 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@request@block2@c@h_@p@e +vRequestBlock_L2_1CH +R2 +R3 +R22 +!i10b 1 +!s100 ?7DQMddcXbRRlW;E5fQSR1 +ITNUS1gO98>@LIJGbzG2if2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/RequestBlock_L2_1CH.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/RequestBlock_L2_1CH.sv +!i122 17 +L0 11 165 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +n@request@block_@l2_1@c@h +vRequestBlock_L2_2CH +R2 +R3 +R22 +!i10b 1 +!s100 3Ch?=C6Dm76AKaBI[fD9;3 +I[mdfez6EBBiPCCHE:>N:I2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/RequestBlock_L2_2CH.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/RequestBlock_L2_2CH.sv +!i122 17 +L0 11 460 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +n@request@block_@l2_2@c@h +vResponseBlock +R2 +R3 +R4 +!i10b 1 +!s100 cXH2_Vbk>57J7YLI6ePAa1 +IaWKL;JmT=8KlffM4:l__D3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/ResponseBlock.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/ResponseBlock.sv +!i122 14 +L0 49 111 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@response@block +vResponseBlock_BRIDGE +R2 +R3 +R22 +!i10b 1 +!s100 eiB]nIAZBQY62FScbGKig0 +I`@XI<^]oZJSXVU=J=c]?^2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/ResponseBlock_BRIDGE.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/ResponseBlock_BRIDGE.sv +!i122 17 +L0 11 114 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +n@response@block_@b@r@i@d@g@e +vResponseBlock_L2 +R2 +R3 +R22 +!i10b 1 +!s100 Ag>Cl@kD10 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/ResponseBlock_PE.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/ResponseBlock_PE.sv +!i122 14 +L0 48 147 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@response@block_@p@e +vResponseTree +R2 +R3 +R4 +!i10b 1 +!s100 RJ13aAbD2 +IfN9;X1gFlngb`bT7ZIELl2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/ResponseTree.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/ResponseTree.sv +!i122 14 +L0 48 89 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@response@tree +vResponseTree_BRIDGE +R2 +R3 +R22 +!i10b 1 +!s100 cbIzmbl1Oe7hfNJ<;zJRj0 +IBSU=UX@8fgm3HEbl_DZQK2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/ResponseTree_BRIDGE.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/ResponseTree_BRIDGE.sv +!i122 17 +L0 11 167 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +n@response@tree_@b@r@i@d@g@e +vResponseTree_L2 +R2 +R3 +R22 +!i10b 1 +!s100 IO@0L7=l_?FPg<9bUBNnd0 +I12EQI1@:7olR^e807c[4_2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/ResponseTree_L2.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/ResponseTree_L2.sv +!i122 17 +L0 11 111 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +n@response@tree_@l2 +vResponseTree_PE +R2 +R3 +R4 +!i10b 1 +!s100 QPfdDS]eIc2mFn2>8A@B?3 +IfN:kWUOkm]NY4nI4fZU6F1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/ResponseTree_PE.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/ResponseTree_PE.sv +!i122 14 +L0 50 130 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@response@tree_@p@e +vrr_arb_tree +R2 +R3 +R15 +!i10b 1 +!s100 ebODC^^PeoLbiGW_QdlfO3 +IGmO_ZU`>ADT6GIoG41]5K3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/rr_arb_tree.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/rr_arb_tree.sv +!i122 9 +L0 47 305 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vrr_arb_tree_tb +R2 +R3 +R4 +!i10b 1 +!s100 NiLkXoTB][R23`>mfIWci0 +I2>?LNNIUzY2LX:GDK`^@N2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/rr_arb_tree_tb.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/rr_arb_tree_tb.sv +!i122 12 +L0 14 252 +R6 +R7 +r1 +!s85 0 +31 +R8 +R20 +R21 +!i113 0 +R11 +R19 +R13 +vRR_Flag_Req_BRIDGE +R2 +R3 +R22 +!i10b 1 +!s100 5XLgnm[mz]NDX3T5EjD9S3 +IURk@19EjMIZGLP^HVA2[@0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/RR_Flag_Req_BRIDGE.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_BRIDGE/RR_Flag_Req_BRIDGE.sv +!i122 17 +R23 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +n@r@r_@flag_@req_@b@r@i@d@g@e +vRR_Flag_Req_L2 +R2 +R3 +R22 +!i10b 1 +!s100 ao@cOhYM[_N8O2gJ`[RZh1 +I:2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/RR_Flag_Req_PE.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/RR_Flag_Req_PE.sv +!i122 14 +L0 48 40 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@r@r_@flag_@req_@p@e +vrrarbiter +R2 +R3 +R4 +!i10b 1 +!s100 ?16]bFhQEI`b1bTkGnKe:2 +IIYf]_dn_:7ZF0MKF:=<@11 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/rrarbiter.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/deprecated/rrarbiter.sv +!i122 13 +L0 24 38 +R6 +R7 +r1 +!s85 0 +31 +R8 +R53 +R54 +!i113 0 +R11 +R19 +R13 +vrstgen +R2 +R3 +R15 +!i10b 1 +!s100 C5kNAQJ@6UfRUn1U?PQob3 +I5S_38ljAmRNFZP>S3 +IcEaAPYPlLD9jb[7GkFUAa3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/rstgen_bypass.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/rstgen_bypass.sv +!i122 9 +L0 15 53 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vserial_deglitch +R2 +R3 +R15 +!i10b 1 +!s100 :ib`ed[o74jMn24MAo<]B0 +I0I8dP`2Bi:MEl=>c;0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/shift_reg_gated.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/shift_reg_gated.sv +!i122 9 +L0 15 51 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vsignal_highlighter +R58 +R3 +R59 +!i10b 1 +!s100 R5FIm`DizS9b@BO?G[k[S2 +IZ[hHVA]n5oeACf@PgOj<02 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/signal_highlighter.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/signal_highlighter.sv +!i122 0 +L0 15 18 +R6 +R7 +r1 +!s85 0 +31 +R61 +R62 +R63 +!i113 0 +R11 +R27 +R13 +vsim_timeout +R58 +R3 +R59 +!i10b 1 +!s100 L4>L8=9PA<75DdB8^on[43 +Io_TXLlikYH;JfYQl]I<1J3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/sim_timeout.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/sim_timeout.sv +!i122 0 +L0 1 28 +R6 +R7 +r1 +!s85 0 +31 +R61 +R62 +R63 +!i113 0 +R11 +R27 +R13 +vsimplex_xbar +R2 +R3 +R4 +!i10b 1 +!s100 imKL[8`IJ?9:YVf]cW?VK2 +IH5Tdc1 +I5lP8XUzidMAO>cadA`oa43 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_arbiter.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_arbiter.sv +!i122 10 +L0 16 34 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +vstream_arbiter_flushable +R2 +R3 +R15 +!i10b 1 +!s100 SLPaidlQkQ20O6h]PMc`Q2 +I]WILE2Wml@]=<87?oLLSIPAhU[MZ30b1 +I==_9bY8A>:R;F=z3VbWQS2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_fifo.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_fifo.sv +!i122 10 +L0 13 54 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +vstream_fifo_optimal_wrap +R2 +R3 +R15 +!i10b 1 +!s100 CMS=Jo^8F:h8JTUPS4b^O2 +IzPm;`mjnLiP8>Oa<0V27N2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_fork.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_fork.sv +!i122 9 +L0 19 115 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vstream_fork_dynamic +R2 +R3 +R15 +!i10b 1 +!s100 68SVYB>?Q>2MVTTD^@Nbg0 +I6;ZJaFSR2 +IIid4nZe>3dbLBdI_blLAb3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_join_dynamic.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_join_dynamic.sv +!i122 9 +L0 18 30 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vstream_mux +R2 +R3 +R15 +!i10b 1 +!s100 c4=^cBh3SlYQoWRI[VFV90 +IoQIObaG[co`ok6PK9Nz6a3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_mux.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_mux.sv +!i122 9 +R234 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vstream_omega_net +R2 +R3 +R14 +R15 +!i10b 1 +!s100 QLiB`]Xk;WTTngdREEB2A2 +I6^jVSB[^803RN[j0J;Keh3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_omega_net.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_omega_net.sv +!i122 10 +L0 18 297 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +vstream_omega_net_tb +R2 +R3 +R55 +R4 +!i10b 1 +!s100 _b7D[ahnOW8De4DePeQl<0 +Ih=3M3XYcU@5@b3e=Y1`613 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/stream_omega_net_tb.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/stream_omega_net_tb.sv +!i122 12 +L0 14 158 +R6 +R7 +r1 +!s85 0 +31 +R8 +R20 +R21 +!i113 0 +R11 +R19 +R13 +vstream_register +R2 +R3 +R15 +!i10b 1 +!s100 QfzNl69D86l2YAL=3 +IjgVF[bcmN4H^leCC0ULN12 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/stream_register_tb.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/stream_register_tb.sv +!i122 12 +L0 12 150 +R6 +R7 +r1 +!s85 0 +31 +R8 +R20 +R21 +!i113 0 +R11 +R19 +R13 +Xstream_test +R2 +!s115 STREAM_DV +R3 +R4 +!i10b 1 +!s100 `;oR>oG>DMmVgo6d:@RG<_02 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/stream_test.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/stream_test.sv +!i122 12 +R98 +Vf[5CB:Rf7`U@Kb@>RG<_02 +R7 +r1 +!s85 0 +31 +R8 +R20 +R21 +!i113 0 +R11 +R19 +R13 +vstream_throttle +R2 +R3 +R14 +R15 +!i10b 1 +!s100 Uieh:4J?7G0nUzK25OZL?0 +I>YSII8Y[cQBP2=Zimg`o;0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_throttle.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_throttle.sv +!i122 9 +L0 13 70 +R6 +R7 +r1 +!s85 0 +31 +R16 +R17 +R18 +!i113 0 +R11 +R19 +R13 +vstream_to_mem +R2 +R3 +R15 +!i10b 1 +!s100 R8;>Cd[jJ4FVXcEVgbCOd3 +IXKn7Y=ZjCeYc1]a[^cjoB3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_to_mem.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/src/stream_to_mem.sv +!i122 10 +L0 17 118 +R6 +R7 +r1 +!s85 0 +31 +R16 +R32 +R33 +!i113 0 +R11 +R19 +R13 +vstream_to_mem_tb +R2 +R3 +R4 +!i10b 1 +!s100 ^zL`:RF8mN]YA=6W>zaNe1 +I08G5HWDi@=6?Ki;C;;i[a0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/stream_to_mem_tb.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/stream_to_mem_tb.sv +!i122 12 +L0 15 139 +R6 +R7 +r1 +!s85 0 +31 +R8 +R20 +R21 +!i113 0 +R11 +R19 +R13 +vstream_watchdog +R58 +R3 +R59 +!i10b 1 +!s100 S8S@US9RJ9@WT`a6aCR@W3 +IHGZN8XIX:F]5R>J@L2nT40 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/stream_watchdog.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/src/stream_watchdog.sv +!i122 0 +L0 15 30 +R6 +R7 +r1 +!s85 0 +31 +R61 +R62 +R63 +!i113 0 +R11 +R27 +R13 +vstream_xbar +R2 +R3 +R15 +!i10b 1 +!s100 ZfEHbnZ_HSX3KGONK[=Fn3 +IR_Z@10 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/stream_xbar_tb.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_cells-6a333249e301ab43/test/stream_xbar_tb.sv +!i122 12 +L0 14 155 +R6 +R7 +r1 +!s85 0 +31 +R8 +R20 +R21 +!i113 0 +R11 +R19 +R13 +vsub_per_hash +R2 +R3 +R15 +!i10b 1 +!s100 UOHHP_ACeaVJ]]3;@Q:=50 +IM?5GL[PMbMH>7i?9nTj8n3m:J5:0 +I3eB2:5a[b;nBAFjEZGfb90 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/test/tb_clk_rst_gen.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/test/tb_clk_rst_gen.sv +!i122 1 +L0 8 49 +R6 +R7 +r1 +!s85 0 +31 +R61 +!s107 /home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/test/tb_clk_rst_gen.sv| +!s90 -incr|-sv|-suppress|2583|-suppress|13314|-suppress|8386|+define+TARGET_CV32E40P_EXCLUDE_TRACER|+define+TARGET_RTL|+define+TARGET_SIMULATION|+define+TARGET_TEST|+define+TARGET_VSIM|+define+COREV_ASSERT_OFF|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/common_verification-d33f9e1d33e4db52/test/tb_clk_rst_gen.sv| +!i113 0 +R11 +R27 +R13 +vtb_datamover_top +!s10a 1733994234 +R3 +!s110 1733995957 +!i10b 1 +!s100 Xd^RA9LWN2T3 +IH5N[ZcOgkJFnIhUeM^62 +I^0NU^dbVz`bJlZHgC[IbG0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/test/tb_tc_sram.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/test/tb_tc_sram.sv +!i122 6 +L0 14 191 +R6 +R7 +r1 +!s85 0 +31 +R68 +!s107 /home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/test/tb_tc_sram.sv| +!s90 -incr|-sv|-suppress|2583|-suppress|13314|-suppress|8386|+define+TARGET_CV32E40P_EXCLUDE_TRACER|+define+TARGET_RTL|+define+TARGET_SIMULATION|+define+TARGET_TEST|+define+TARGET_VSIM|+define+COREV_ASSERT_OFF|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/test/tb_tc_sram.sv| +!i113 0 +R11 +R27 +R13 +vtc_clk_and2 +R2 +R3 +R76 +!i10b 1 +!s100 fz>PKll2^3;fm3Bk`S3cG3 +Ie[Ea`V45>;?V39m::^LS`2 +S1 +R1 +R5 +Z237 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/rtl/tc_clk.sv +Z238 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/rtl/tc_clk.sv +!i122 3 +R229 +R6 +R7 +r1 +!s85 0 +31 +R68 +Z239 !s107 /home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/rtl/tc_clk.sv| +Z240 !s90 -incr|-sv|-suppress|2583|-suppress|13314|-suppress|8386|+define+TARGET_CV32E40P_EXCLUDE_TRACER|+define+TARGET_RTL|+define+TARGET_SIMULATION|+define+TARGET_TEST|+define+TARGET_VSIM|+define+COREV_ASSERT_OFF|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/rtl/tc_clk.sv| +!i113 0 +R11 +R27 +R13 +vtc_clk_buffer +R2 +R3 +R76 +!i10b 1 +!s100 l3Q2UmAo7=K`@4IlHKbm82 +I7@`1`^faW`LL[@g_S8XYP2 +S1 +R1 +R5 +R237 +R238 +!i122 3 +L0 21 8 +R6 +R7 +r1 +!s85 0 +31 +R68 +R239 +R240 +!i113 0 +R11 +R27 +R13 +vtc_clk_delay +R2 +R3 +R76 +!i10b 1 +!s100 ZV=SE;hVKXHbjWQ9bHioM2 +IEHW5BZ9gB]HmZg6aG4>EX2 +S1 +R1 +R5 +R237 +R238 +!i122 3 +L0 106 14 +R6 +R7 +r1 +!s85 0 +31 +R68 +R239 +R240 +!i113 0 +R11 +R27 +R13 +vtc_clk_gating +R2 +R3 +R76 +!i10b 1 +!s100 GbR;@TIabLLf[gNYJJ2XdQQK]L^0 +IelUc?mMN>jVWfkUWdB=oh2 +S1 +R1 +R5 +R237 +R238 +!i122 3 +L0 55 8 +R6 +R7 +r1 +!s85 0 +31 +R68 +R239 +R240 +!i113 0 +R11 +R27 +R13 +vtc_clk_mux2 +R2 +R3 +R76 +!i10b 1 +!s100 Ddz@c3geJTHzUlejJh0^b1 +IF:cKBaGChlzeM<7VD5Hh63 +S1 +R1 +R5 +R237 +R238 +!i122 3 +L0 74 10 +R6 +R7 +r1 +!s85 0 +31 +R68 +R239 +R240 +!i113 0 +R11 +R27 +R13 +vtc_clk_or2 +R2 +R3 +R76 +!i10b 1 +!s100 Xb2@YhZ[N_8DBknaaIZ^13 +Izaz;eHeUl2APLOSnH[58S2 +S1 +R1 +R5 +R237 +R238 +!i122 3 +L0 95 9 +R6 +R7 +r1 +!s85 0 +31 +R68 +R239 +R240 +!i113 0 +R11 +R27 +R13 +vtc_clk_xor2 +R2 +R3 +R76 +!i10b 1 +!s100 W8e9`:PnDHS6PR8hIz8mJ2 +I?cTobhQNV0HfIEfKPlAeJ0 +S1 +R1 +R5 +R237 +R238 +!i122 3 +L0 85 9 +R6 +R7 +r1 +!s85 0 +31 +R68 +R239 +R240 +!i113 0 +R11 +R27 +R13 +vtc_pwr_isolation_hi +R2 +R3 +R76 +!i10b 1 +!s100 ?c:i^3fGZ3PJ_n3kimAnV2 +IBdo74E:G1T][27lHJ81W;3 +S1 +R1 +R5 +Z241 8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/tc_pwr.sv +Z242 F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/tc_pwr.sv +!i122 5 +L0 92 9 +R6 +R7 +r1 +!s85 0 +31 +R68 +Z243 !s107 /home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/tc_pwr.sv| +Z244 !s90 -incr|-sv|-suppress|2583|-suppress|13314|-suppress|8386|+define+TARGET_CV32E40P_EXCLUDE_TRACER|+define+TARGET_RTL|+define+TARGET_SIMULATION|+define+TARGET_TEST|+define+TARGET_VSIM|+define+COREV_ASSERT_OFF|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/tc_pwr.sv| +!i113 0 +R11 +R27 +R13 +vtc_pwr_isolation_lo +R2 +R3 +R76 +!i10b 1 +!s100 `bzcAFB^=KRm45MP=YXR31=G?E2 +S1 +R1 +R5 +R241 +R242 +!i122 5 +L0 82 9 +R6 +R7 +r1 +!s85 0 +31 +R68 +R243 +R244 +!i113 0 +R11 +R27 +R13 +vtc_pwr_level_shifter_in +R2 +R3 +R76 +!i10b 1 +!s100 `X^QUe8PLbZzjKSCJCzM20 +I[Q0=[[AS]S_6_7146;?6m3 +S1 +R1 +R5 +R241 +R242 +!i122 5 +R28 +R6 +R7 +r1 +!s85 0 +31 +R68 +R243 +R244 +!i113 0 +R11 +R27 +R13 +vtc_pwr_level_shifter_in_clamp_hi +R2 +R3 +R76 +!i10b 1 +!s100 T2H@ahXSFJZEeGRXa]8Z>3 +IlofI_KjBPgOFfnG^lPTYi1 +S1 +R1 +R5 +R241 +R242 +!i122 5 +L0 34 9 +R6 +R7 +r1 +!s85 0 +31 +R68 +R243 +R244 +!i113 0 +R11 +R27 +R13 +vtc_pwr_level_shifter_in_clamp_lo +R2 +R3 +R76 +!i10b 1 +!s100 KBBhgD0K3Lf_oRkQ6ozoi2 +Ij^[ElGQ38?h_=1QcbhC3K2 +S1 +R1 +R5 +R241 +R242 +!i122 5 +L0 24 9 +R6 +R7 +r1 +!s85 0 +31 +R68 +R243 +R244 +!i113 0 +R11 +R27 +R13 +vtc_pwr_level_shifter_out +R2 +R3 +R76 +!i10b 1 +!s100 >jR^UXh[;ISAF1[Z11O`?3 +I[?glVCIQ__VnzjJ^4UQ9A3 +S1 +R1 +R5 +R241 +R242 +!i122 5 +L0 44 8 +R6 +R7 +r1 +!s85 0 +31 +R68 +R243 +R244 +!i113 0 +R11 +R27 +R13 +vtc_pwr_level_shifter_out_clamp_hi +R2 +R3 +R76 +!i10b 1 +!s100 <0CIO^iFoQ`RED9hQdI;K2 +I>U74F2QLL]fJKl6bMfaO<1 +S1 +R1 +R5 +R241 +R242 +!i122 5 +L0 63 9 +R6 +R7 +r1 +!s85 0 +31 +R68 +R243 +R244 +!i113 0 +R11 +R27 +R13 +vtc_pwr_level_shifter_out_clamp_lo +R2 +R3 +R76 +!i10b 1 +!s100 @@jWVVhSV7UCNPB=XcXZf2 +IM^JL1Pf;YU^N0bb5b45L20 +S1 +R1 +R5 +R241 +R242 +!i122 5 +L0 53 9 +R6 +R7 +r1 +!s85 0 +31 +R68 +R243 +R244 +!i113 0 +R11 +R27 +R13 +vtc_pwr_power_gating +R2 +R3 +R76 +!i10b 1 +!s100 Z_]CbzRe5ZE2e[Be^mWBU0 +I?REMJLLUz8WmWA4_6gk;g2 +S1 +R1 +R5 +R241 +R242 +!i122 5 +L0 73 8 +R6 +R7 +r1 +!s85 0 +31 +R68 +R243 +R244 +!i113 0 +R11 +R27 +R13 +vtc_sram +R2 +R3 +R76 +!i10b 1 +!s100 6GE^[mj0CY2IhAgMUcd1?0 +IcJWZE:VB]6fAO?iEG;zLU1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/rtl/tc_sram.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/rtl/tc_sram.sv +!i122 2 +L0 56 190 +R6 +R7 +r1 +!s85 0 +31 +R61 +Z245 !s107 /home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/rtl/tc_sram_impl.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/rtl/tc_sram.sv| +Z246 !s90 -incr|-sv|-suppress|2583|-suppress|13314|-suppress|8386|+define+TARGET_CV32E40P_EXCLUDE_TRACER|+define+TARGET_RTL|+define+TARGET_SIMULATION|+define+TARGET_TEST|+define+TARGET_VSIM|+define+COREV_ASSERT_OFF|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/rtl/tc_sram.sv|/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/rtl/tc_sram_impl.sv| +!i113 0 +R11 +R27 +R13 +vtc_sram_impl +R2 +R3 +R76 +!i10b 1 +!s100 ^VANgRLiNHV:SdKQ0RzUU0 +InC_0=l391 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/rtl/tc_sram_impl.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/tech_cells_generic-712461a608e7f5e9/src/rtl/tc_sram_impl.sv +!i122 2 +L0 27 58 +R6 +R7 +r1 +!s85 0 +31 +R61 +R245 +R246 +!i113 0 +R11 +R27 +R13 +vtcdm_interconnect +R2 +R3 +R64 +R4 +!i10b 1 +!s100 R^Zj>J;]KcMP<4b`?NhP70 +IzfBnecJ_VjPkDK9<4HBF<1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/tcdm_interconnect/tcdm_interconnect.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/tcdm_interconnect/tcdm_interconnect.sv +!i122 14 +L0 18 306 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +Xtcdm_interconnect_pkg +R2 +R3 +R4 +!i10b 1 +!s100 <_MAVoz=>T4R[K9dNMG6a2 +Innf48`:oZHONJ7R4UGPmj0 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/tcdm_interconnect/tcdm_interconnect_pkg.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/tcdm_interconnect/tcdm_interconnect_pkg.sv +!i122 14 +R98 +Vnnf48`:oZHONJ7R4UGPmj0 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +vTCDM_PIPE_REQ +R2 +R3 +R4 +!i10b 1 +!s100 0PgXYN9W@Y=JAD]J<1BCS1 +I?53[[>`SlMf6e=jPS:W:11 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/TCDM_PIPE_REQ.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/TCDM_PIPE_REQ.sv +!i122 14 +L0 50 256 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@t@c@d@m_@p@i@p@e_@r@e@q +vTCDM_PIPE_RESP +R2 +R3 +R4 +!i10b 1 +!s100 UQTO88Pkd@5S2D_^9U<1F3 +Idoo[EG>7>DhzmY3^M[be82 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/TCDM_PIPE_RESP.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/TCDM_PIPE_RESP.sv +!i122 14 +L0 49 139 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@t@c@d@m_@p@i@p@e_@r@e@s@p +vTestAndSet +R2 +R3 +R4 +!i10b 1 +!s100 ?S_o2MJ`9[Y`2@_bhmoW_1 +IQdM5AQT9F`WLk3@DU>[>o2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/TestAndSet.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/low_latency_interco/TestAndSet.sv +!i122 14 +L0 48 186 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@test@and@set +vunread +R2 +R3 +R15 +!i10b 1 +!s100 MadKn46XN_U8C?eHG6aeX3 +Iza[j]F_ohNdKi3 +InLBYQP9nDT6Tfhh5NgB:]3 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/tcdm_interconnect/xbar.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/tcdm_interconnect/xbar.sv +!i122 14 +L0 15 119 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +vXBAR_BRIDGE +R2 +R3 +R22 +!i10b 1 +!s100 mA@eQa[R0dAPnZdZA5aR[cJPh2 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/XBAR_L2.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/l2_tcdm_hybrid_interco-e3a492f6795b8e6b/RTL/XBAR_L2/XBAR_L2.sv +!i122 17 +L0 11 245 +R6 +R7 +r1 +!s85 0 +31 +R24 +R25 +R26 +!i113 0 +R11 +R27 +R13 +n@x@b@a@r_@l2 +vXBAR_PE +R2 +R3 +R4 +!i10b 1 +!s100 PcTN@JWm:gXDNNAOg;;>S0 +IWM^UoEh[cEDBSY3T>Smdz1 +S1 +R1 +R5 +8/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/XBAR_PE.sv +F/home/ms_dgorfini/Desktop/hwpe-datamover-example/.bender/git/checkouts/cluster_interconnect-a17539e30e6dc0ae/rtl/peripheral_interco/XBAR_PE.sv +!i122 14 +L0 47 264 +R6 +R7 +r1 +!s85 0 +31 +R8 +R9 +R10 +!i113 0 +R11 +R12 +R13 +n@x@b@a@r_@p@e +vXBAR_TCDM +R2 +R3 +R4 +!i10b 1 +!s100 : + ... +1c000080: 0040006f j 1c000084 <_start> + +Disassembly of section .text: + +1c000084 <_start>: +1c000084: f1402573 csrr a0,mhartid +1c000088: 01f57593 andi a1,a0,31 +1c00008c: 8115 srli a0,a0,0x5 +1c00008e: 4285 li t0,1 +1c000090: 3002a073 csrs mstatus,t0 +1c000094: 42a1 li t0,8 +1c000096: 3042a073 csrs 0x304,t0 +1c00009a: 00013297 auipc t0,0x13 +1c00009e: 36628293 addi t0,t0,870 # 1c013400 <_bss_end> +1c0000a2: 00013317 auipc t1,0x13 +1c0000a6: 35e30313 addi t1,t1,862 # 1c013400 <_bss_end> +1c0000aa: 0002a023 sw zero,0(t0) +1c0000ae: 0291 addi t0,t0,4 +1c0000b0: fe62ede3 bltu t0,t1,1c0000aa <_start+0x26> +1c0000b4: 00070117 auipc sp,0x70 +1c0000b8: f4c10113 addi sp,sp,-180 # 1c070000 <_stack_start> +1c0000bc: 00000513 li a0,0 +1c0000c0: 00000593 li a1,0 +1c0000c4: 00000397 auipc t2,0x0 +1c0000c8: 06038393 addi t2,t2,96 # 1c000124
+1c0000cc: 000380e7 jalr t2 +1c0000d0: 842a mv s0,a0 +1c0000d2: 8522 mv a0,s0 +1c0000d4: 10500073 wfi + +1c0000d8 <_fini>: +1c0000d8: 8082 ret + +1c0000da <__CTOR_LIST__>: + ... + +1c0000e2 <__CTOR_END__>: + ... + +Disassembly of section .text.__lfsr_iter_word: + +1c0000ea <__lfsr_iter_word>: +1c0000ea: 0ff57793 andi a5,a0,255 +1c0000ee: 078a slli a5,a5,0x2 +1c0000f0: 97ae add a5,a5,a1 +1c0000f2: 439c lw a5,0(a5) +1c0000f4: 8121 srli a0,a0,0x8 +1c0000f6: 8d3d xor a0,a0,a5 +1c0000f8: 0ff57793 andi a5,a0,255 +1c0000fc: 078a slli a5,a5,0x2 +1c0000fe: 97ae add a5,a5,a1 +1c000100: 439c lw a5,0(a5) +1c000102: 8121 srli a0,a0,0x8 +1c000104: 8d3d xor a0,a0,a5 +1c000106: 0ff57793 andi a5,a0,255 +1c00010a: 078a slli a5,a5,0x2 +1c00010c: 97ae add a5,a5,a1 +1c00010e: 439c lw a5,0(a5) +1c000110: 8121 srli a0,a0,0x8 +1c000112: 8fa9 xor a5,a5,a0 +1c000114: 0ff7f713 andi a4,a5,255 +1c000118: 070a slli a4,a4,0x2 +1c00011a: 95ba add a1,a1,a4 +1c00011c: 4188 lw a0,0(a1) +1c00011e: 83a1 srli a5,a5,0x8 +1c000120: 8d3d xor a0,a0,a5 +1c000122: 8082 ret + +Disassembly of section .text.startup.main: + +1c000124
: +1c000124: 7139 addi sp,sp,-64 +1c000126: dc22 sw s0,56(sp) +1c000128: 1c013437 lui s0,0x1c013 +1c00012c: d256 sw s5,36(sp) +1c00012e: deadc537 lui a0,0xdeadc +1c000132: c0040a93 addi s5,s0,-1024 # 1c012c00 +1c000136: da26 sw s1,52(sp) +1c000138: d84a sw s2,48(sp) +1c00013a: d452 sw s4,40(sp) +1c00013c: c0040913 addi s2,s0,-1024 +1c000140: de06 sw ra,60(sp) +1c000142: d64e sw s3,44(sp) +1c000144: d05a sw s6,32(sp) +1c000146: ce5e sw s7,28(sp) +1c000148: cc62 sw s8,24(sp) +1c00014a: c602 sw zero,12(sp) +1c00014c: 7fca8493 addi s1,s5,2044 +1c000150: c0040413 addi s0,s0,-1024 +1c000154: eef50513 addi a0,a0,-273 # deadbeef +1c000158: 1c010a37 lui s4,0x1c010 +1c00015c: 000a0593 mv a1,s4 +1c000160: 3769 jal 1c0000ea <__DTOR_END__> +1c000162: c008 sw a0,0(s0) +1c000164: 0411 addi s0,s0,4 +1c000166: fe941be3 bne s0,s1,1c00015c +1c00016a: 1c0124b7 lui s1,0x1c012 +1c00016e: 40048b93 addi s7,s1,1024 # 1c012400 +1c000172: deadc537 lui a0,0xdeadc +1c000176: 40048413 addi s0,s1,1024 +1c00017a: 7fcb8993 addi s3,s7,2044 +1c00017e: 40048493 addi s1,s1,1024 +1c000182: ef050513 addi a0,a0,-272 # deadbef0 +1c000186: 000a0593 mv a1,s4 +1c00018a: 3785 jal 1c0000ea <__DTOR_END__> +1c00018c: c088 sw a0,0(s1) +1c00018e: 0491 addi s1,s1,4 +1c000190: ff349be3 bne s1,s3,1c000186 +1c000194: 1c0124b7 lui s1,0x1c012 +1c000198: c0048b13 addi s6,s1,-1024 # 1c011c00 +1c00019c: deadc537 lui a0,0xdeadc +1c0001a0: c0048993 addi s3,s1,-1024 +1c0001a4: 7fcb0c13 addi s8,s6,2044 +1c0001a8: c0048493 addi s1,s1,-1024 +1c0001ac: ef150513 addi a0,a0,-271 # deadbef1 +1c0001b0: 000a0593 mv a1,s4 +1c0001b4: 3f1d jal 1c0000ea <__DTOR_END__> +1c0001b6: c088 sw a0,0(s1) +1c0001b8: 0491 addi s1,s1,4 +1c0001ba: ff849be3 bne s1,s8,1c0001b0 +1c0001be: 001007b7 lui a5,0x100 +1c0001c2: 43d8 lw a4,4(a5) +1c0001c4: fe074fe3 bltz a4,1c0001c2 +1c0001c8: 1c011637 lui a2,0x1c011 +1c0001cc: 0357a023 sw s5,32(a5) # 100020 <_stack_len+0xd0020> +1c0001d0: 40060713 addi a4,a2,1024 # 1c011400 +1c0001d4: d3d8 sw a4,36(a5) +1c0001d6: 04000e13 li t3,64 +1c0001da: 03c7a423 sw t3,40(a5) +1c0001de: 4311 li t1,4 +1c0001e0: 0267a623 sw t1,44(a5) +1c0001e4: 02000893 li a7,32 +1c0001e8: 0317a823 sw a7,48(a5) +1c0001ec: 4821 li a6,8 +1c0001ee: 0307aa23 sw a6,52(a5) +1c0001f2: 10000513 li a0,256 +1c0001f6: df88 sw a0,56(a5) +1c0001f8: 08000593 li a1,128 +1c0001fc: dfcc sw a1,60(a5) +1c0001fe: 0467a023 sw t1,64(a5) +1c000202: 0517a223 sw a7,68(a5) +1c000206: 0507a423 sw a6,72(a5) +1c00020a: c7e8 sw a0,76(a5) +1c00020c: cbac sw a1,80(a5) +1c00020e: 1c011737 lui a4,0x1c011 +1c000212: 0577aa23 sw s7,84(a5) +1c000216: c0070713 addi a4,a4,-1024 # 1c010c00 +1c00021a: cfb8 sw a4,88(a5) +1c00021c: 05c7ae23 sw t3,92(a5) +1c000220: 0667a023 sw t1,96(a5) +1c000224: 0717a223 sw a7,100(a5) +1c000228: 0707a423 sw a6,104(a5) +1c00022c: d7e8 sw a0,108(a5) +1c00022e: dbac sw a1,112(a5) +1c000230: 0667aa23 sw t1,116(a5) +1c000234: 0717ac23 sw a7,120(a5) +1c000238: 0707ae23 sw a6,124(a5) +1c00023c: 08a7a023 sw a0,128(a5) +1c000240: 08b7a223 sw a1,132(a5) +1c000244: 1c0106b7 lui a3,0x1c010 +1c000248: 0967a423 sw s6,136(a5) +1c00024c: 40068693 addi a3,a3,1024 # 1c010400 <_edata> +1c000250: 08d7a623 sw a3,140(a5) +1c000254: 09c7a823 sw t3,144(a5) +1c000258: 0867aa23 sw t1,148(a5) +1c00025c: 0917ac23 sw a7,152(a5) +1c000260: 0907ae23 sw a6,156(a5) +1c000264: 0aa7a023 sw a0,160(a5) +1c000268: 0ab7a223 sw a1,164(a5) +1c00026c: 0a67a423 sw t1,168(a5) +1c000270: 0b17a623 sw a7,172(a5) +1c000274: 0b07a823 sw a6,176(a5) +1c000278: 0aa7aa23 sw a0,180(a5) +1c00027c: 0ab7ac23 sw a1,184(a5) +1c000280: 0007a023 sw zero,0(a5) +1c000284: 10500073 wfi +1c000288: 6805 lui a6,0x1 +1c00028a: 40060613 addi a2,a2,1024 +1c00028e: 80080813 addi a6,a6,-2048 # 800 <__DYNAMIC+0x800> +1c000292: 9832 add a6,a6,a2 +1c000294: 4581 li a1,0 +1c000296: 421c lw a5,0(a2) +1c000298: 00092503 lw a0,0(s2) +1c00029c: 0611 addi a2,a2,4 +1c00029e: 0911 addi s2,s2,4 +1c0002a0: 8f89 sub a5,a5,a0 +1c0002a2: 00f037b3 snez a5,a5 +1c0002a6: 95be add a1,a1,a5 +1c0002a8: ff0617e3 bne a2,a6,1c000296 +1c0002ac: 47b2 lw a5,12(sp) +1c0002ae: 6505 lui a0,0x1 +1c0002b0: 80050513 addi a0,a0,-2048 # 800 <__DYNAMIC+0x800> +1c0002b4: 95be add a1,a1,a5 +1c0002b6: c62e sw a1,12(sp) +1c0002b8: 953a add a0,a0,a4 +1c0002ba: 4601 li a2,0 +1c0002bc: 431c lw a5,0(a4) +1c0002be: 400c lw a1,0(s0) +1c0002c0: 0711 addi a4,a4,4 +1c0002c2: 0411 addi s0,s0,4 +1c0002c4: 8f8d sub a5,a5,a1 +1c0002c6: 00f037b3 snez a5,a5 +1c0002ca: 963e add a2,a2,a5 +1c0002cc: fee518e3 bne a0,a4,1c0002bc +1c0002d0: 47b2 lw a5,12(sp) +1c0002d2: 6585 lui a1,0x1 +1c0002d4: 80058593 addi a1,a1,-2048 # 800 <__DYNAMIC+0x800> +1c0002d8: 963e add a2,a2,a5 +1c0002da: 8736 mv a4,a3 +1c0002dc: 95b6 add a1,a1,a3 +1c0002de: c632 sw a2,12(sp) +1c0002e0: 4681 li a3,0 +1c0002e2: 431c lw a5,0(a4) +1c0002e4: 0009a603 lw a2,0(s3) +1c0002e8: 0711 addi a4,a4,4 +1c0002ea: 0991 addi s3,s3,4 +1c0002ec: 8f91 sub a5,a5,a2 +1c0002ee: 00f037b3 snez a5,a5 +1c0002f2: 96be add a3,a3,a5 +1c0002f4: fee597e3 bne a1,a4,1c0002e2 +1c0002f8: 47b2 lw a5,12(sp) +1c0002fa: 50f2 lw ra,60(sp) +1c0002fc: 5462 lw s0,56(sp) +1c0002fe: 96be add a3,a3,a5 +1c000300: c636 sw a3,12(sp) +1c000302: 4732 lw a4,12(sp) +1c000304: 800007b7 lui a5,0x80000 +1c000308: 54d2 lw s1,52(sp) +1c00030a: c398 sw a4,0(a5) +1c00030c: 4532 lw a0,12(sp) +1c00030e: 5942 lw s2,48(sp) +1c000310: 59b2 lw s3,44(sp) +1c000312: 5a22 lw s4,40(sp) +1c000314: 5a92 lw s5,36(sp) +1c000316: 5b02 lw s6,32(sp) +1c000318: 4bf2 lw s7,28(sp) +1c00031a: 4c62 lw s8,24(sp) +1c00031c: 6121 addi sp,sp,64 +1c00031e: 8082 ret diff --git a/work/verif.o b/work/verif.o new file mode 100644 index 0000000..ad7c02f Binary files /dev/null and b/work/verif.o differ diff --git a/work/verif.s19 b/work/verif.s19 new file mode 100755 index 0000000..cd405b1 --- /dev/null +++ b/work/verif.s19 @@ -0,0 +1,14114 @@ +S02B00002F686F6D652F6D735F64676F7266696E692F4465736B746F702F687770652D646174616D6F76657260 +S3061C00000000DD +S3061C00000100DC +S3061C00000200DB +S3061C00000300DA +S3061C00000400D9 +S3061C00000500D8 +S3061C00000600D7 +S3061C00000700D6 +S3061C00000800D5 +S3061C00000900D4 +S3061C00000A00D3 +S3061C00000B00D2 +S3061C00000C00D1 +S3061C00000D00D0 +S3061C00000E00CF +S3061C00000F00CE +S3061C00001000CD +S3061C00001100CC +S3061C00001200CB +S3061C00001300CA +S3061C00001400C9 +S3061C00001500C8 +S3061C00001600C7 +S3061C00001700C6 +S3061C00001800C5 +S3061C00001900C4 +S3061C00001A00C3 +S3061C00001B00C2 +S3061C00001C00C1 +S3061C00001D00C0 +S3061C00001E00BF +S3061C00001F00BE +S3061C00002000BD +S3061C00002100BC +S3061C00002200BB +S3061C00002300BA +S3061C00002400B9 +S3061C00002500B8 +S3061C00002600B7 +S3061C00002700B6 +S3061C00002800B5 +S3061C00002900B4 +S3061C00002A00B3 +S3061C00002B00B2 +S3061C00002C00B1 +S3061C00002D00B0 +S3061C00002E00AF +S3061C00002F00AE +S3061C00003000AD +S3061C00003100AC +S3061C00003200AB +S3061C00003300AA +S3061C00003400A9 +S3061C00003500A8 +S3061C00003600A7 +S3061C00003700A6 +S3061C00003800A5 +S3061C00003900A4 +S3061C00003A00A3 +S3061C00003B00A2 +S3061C00003C00A1 +S3061C00003D00A0 +S3061C00003E009F +S3061C00003F009E +S3061C000040009D +S3061C000041009C +S3061C000042009B +S3061C000043009A +S3061C0000440099 +S3061C0000450098 +S3061C0000460097 +S3061C0000470096 +S3061C0000480095 +S3061C0000490094 +S3061C00004A0093 +S3061C00004B0092 +S3061C00004C0091 +S3061C00004D0090 +S3061C00004E008F +S3061C00004F008E +S3061C000050008D +S3061C000051008C +S3061C000052008B +S3061C000053008A +S3061C0000540089 +S3061C0000550088 +S3061C0000560087 +S3061C0000570086 +S3061C0000580085 +S3061C0000590084 +S3061C00005A0083 +S3061C00005B0082 +S3061C00005C0081 +S3061C00005D0080 +S3061C00005E007F +S3061C00005F007E +S3061C000060007D +S3061C000061007C +S3061C000062007B +S3061C000063007A +S3061C0000640079 +S3061C0000650078 +S3061C0000660077 +S3061C0000670076 +S3061C0000680075 +S3061C0000690074 +S3061C00006A0073 +S3061C00006B0072 +S3061C00006C0071 +S3061C00006D0070 +S3061C00006E006F +S3061C00006F006E +S3061C000070006D +S3061C000071006C +S3061C000072006B +S3061C000073006A +S3061C0000740069 +S3061C0000750068 +S3061C0000760067 +S3061C0000770066 +S3061C0000780065 +S3061C0000790064 +S3061C00007A0063 +S3061C00007B0062 +S3061C00007C0061 +S3061C00007D0060 +S3061C00007E005F +S3061C00007F005E +S3061C0000806FEE +S3061C000081005C +S3061C000082401B +S3061C000083005A +S3061C00008473E6 +S3061C0000852533 +S3061C0000864017 +S3061C000087F165 +S3061C00008893C2 +S3061C00008975DF +S3061C00008AF55E +S3061C00008B0151 +S3061C00008C153C +S3061C00008D81CF +S3061C00008E85CA +S3061C00008F420C +S3061C00009073DA +S3061C000091A0AC +S3061C0000920249 +S3061C000093301A +S3061C000094A1A8 +S3061C0000954206 +S3061C00009673D4 +S3061C000097A0A6 +S3061C0000984203 +S3061C0000993014 +S3061C00009A97AC +S3061C00009B3210 +S3061C00009C0140 +S3061C00009D0040 +S3061C00009E93AC +S3061C00009F82BC +S3061C0000A062DB +S3061C0000A13606 +S3061C0000A21724 +S3061C0000A33307 +S3061C0000A40138 +S3061C0000A50038 +S3061C0000A61324 +S3061C0000A70333 +S3061C0000A8E352 +S3061C0000A935FF +S3061C0000AA2310 +S3061C0000ABA092 +S3061C0000AC022F +S3061C0000AD0030 +S3061C0000AE919E +S3061C0000AF022C +S3061C0000B0E34A +S3061C0000B1ED3F +S3061C0000B262C9 +S3061C0000B3FE2C +S3061C0000B41712 +S3061C0000B50127 +S3061C0000B60720 +S3061C0000B70026 +S3061C0000B81312 +S3061C0000B90123 +S3061C0000BAC162 +S3061C0000BBF42E +S3061C0000BC130E +S3061C0000BD051B +S3061C0000BE001F +S3061C0000BF001E +S3061C0000C0938A +S3061C0000C10517 +S3061C0000C2001B +S3061C0000C3001A +S3061C0000C49782 +S3061C0000C50315 +S3061C0000C60017 +S3061C0000C70016 +S3061C0000C89382 +S3061C0000C98391 +S3061C0000CA0310 +S3061C0000CB060C +S3061C0000CCE72A +S3061C0000CD8090 +S3061C0000CE030C +S3061C0000CF000E +S3061C0000D02AE3 +S3061C0000D18488 +S3061C0000D222E9 +S3061C0000D38585 +S3061C0000D47396 +S3061C0000D50008 +S3061C0000D650B7 +S3061C0000D710F6 +S3061C0000D88283 +S3061C0000D98084 +S3061C0000DA0003 +S3061C0000DB0002 +S3061C0000DC0001 +S3061C0000DD0000 +S3061C0000DE00FF +S3061C0000DF00FE +S3061C0000E000FD +S3061C0000E100FC +S3061C0000E200FB +S3061C0000E300FA +S3061C0000E400F9 +S3061C0000E500F8 +S3061C0000E600F7 +S3061C0000E700F6 +S3061C0000E800F5 +S3061C0000E900F4 +S3061C0000EA9360 +S3061C0000EB777B +S3061C0000ECF5FC +S3061C0000ED0FE1 +S3061C0000EE8A65 +S3061C0000EF07E7 +S3061C0000F0AE3F +S3061C0000F19755 +S3061C0000F29C4F +S3061C0000F343A7 +S3061C0000F421C8 +S3061C0000F58167 +S3061C0000F63DAA +S3061C0000F78D59 +S3061C0000F89352 +S3061C0000F9776D +S3061C0000FAF5EE +S3061C0000FB0FD3 +S3061C0000FC8A57 +S3061C0000FD07D9 +S3061C0000FEAE31 +S3061C0000FF9747 +S3061C0001009C40 +S3061C0001014398 +S3061C00010221B9 +S3061C0001038158 +S3061C0001043D9B +S3061C0001058D4A +S3061C0001069343 +S3061C000107775E +S3061C000108F5DF +S3061C0001090FC4 +S3061C00010A8A48 +S3061C00010B07CA +S3061C00010CAE22 +S3061C00010D9738 +S3061C00010E9C32 +S3061C00010F438A +S3061C00011021AB +S3061C000111814A +S3061C000112A921 +S3061C0001138F3A +S3061C00011413B5 +S3061C000115F7D0 +S3061C000116F7CF +S3061C0001170FB6 +S3061C0001180ABA +S3061C00011907BC +S3061C00011ABA08 +S3061C00011B952C +S3061C00011C8838 +S3061C00011D417E +S3061C00011EA11D +S3061C00011F833A +S3061C0001203D7F +S3061C0001218D2E +S3061C0001228238 +S3061C0001238039 +S3061C000124397F +S3061C0001257146 +S3061C0001262294 +S3061C000127DCD9 +S3061C000128377D +S3061C000129347F +S3061C00012A01B1 +S3061C00012B1C95 +S3061C00012C565A +S3061C00012DD2DD +S3061C00012E3777 +S3061C00012FC5E8 +S3061C000130ADFF +S3061C000131DECD +S3061C0001329317 +S3061C0001330A9F +S3061C00013404A4 +S3061C000135C0E7 +S3061C0001362680 +S3061C000137DACB +S3061C0001384A5A +S3061C000139D8CB +S3061C00013A5250 +S3061C00013BD4CD +S3061C00013C138D +S3061C00013D0996 +S3061C00013E049A +S3061C00013FC0DD +S3061C0001400696 +S3061C000141DEBD +S3061C0001424E4C +S3061C000143D6C3 +S3061C0001445A3E +S3061C000145D0C7 +S3061C0001465E38 +S3061C000147CEC7 +S3061C0001486232 +S3061C000149CCC7 +S3061C00014A0290 +S3061C00014BC6CB +S3061C00014C93FD +S3061C00014D840B +S3061C00014ECAC4 +S3061C00014F7F0E +S3061C0001501379 +S3061C0001510487 +S3061C0001520486 +S3061C000153C0C9 +S3061C0001541375 +S3061C0001550582 +S3061C000156F591 +S3061C000157EE97 +S3061C000158374D +S3061C0001590A79 +S3061C00015A0181 +S3061C00015B1C65 +S3061C00015C93ED +S3061C00015D057A +S3061C00015E0A74 +S3061C00015F007D +S3061C0001606913 +S3061C0001613744 +S3061C0001620872 +S3061C000163C0B9 +S3061C0001641167 +S3061C0001650473 +S3061C000166E393 +S3061C0001671B5A +S3061C00016894E0 +S3061C000169FE75 +S3061C00016AB7BB +S3061C00016B244D +S3061C00016C016F +S3061C00016D1C53 +S3061C00016E93DB +S3061C00016F8BE2 +S3061C0001700468 +S3061C000171402B +S3061C0001723733 +S3061C000173C5A4 +S3061C000174ADBB +S3061C000175DE89 +S3061C0001761353 +S3061C00017784E1 +S3061C0001780460 +S3061C0001794023 +S3061C00017A93CF +S3061C00017B89D8 +S3061C00017CCB95 +S3061C00017D7FE0 +S3061C00017E93CB +S3061C00017F84D9 +S3061C0001800458 +S3061C000181401B +S3061C0001821347 +S3061C0001830554 +S3061C0001840553 +S3061C000185EF68 +S3061C00018693C3 +S3061C0001870550 +S3061C0001880A4A +S3061C0001890053 +S3061C00018A85CD +S3061C00018B371A +S3061C00018C88C8 +S3061C00018DC08F +S3061C00018E91BD +S3061C00018F0449 +S3061C000190E369 +S3061C0001919BB0 +S3061C0001923416 +S3061C000193FF4A +S3061C000194B791 +S3061C0001952423 +S3061C0001960145 +S3061C0001971C29 +S3061C0001981331 +S3061C0001998BB8 +S3061C00019A043E +S3061C00019BC081 +S3061C00019C3709 +S3061C00019DC57A +S3061C00019EAD91 +S3061C00019FDE5F +S3061C0001A093A9 +S3061C0001A189B2 +S3061C0001A20436 +S3061C0001A3C079 +S3061C0001A41325 +S3061C0001A50C2B +S3061C0001A6CB6B +S3061C0001A77FB6 +S3061C0001A893A1 +S3061C0001A984AF +S3061C0001AA042E +S3061C0001ABC071 +S3061C0001AC131D +S3061C0001AD052A +S3061C0001AE1519 +S3061C0001AFEF3E +S3061C0001B09399 +S3061C0001B10526 +S3061C0001B20A20 +S3061C0001B30029 +S3061C0001B41D0B +S3061C0001B53FE8 +S3061C0001B6889E +S3061C0001B7C065 +S3061C0001B89193 +S3061C0001B9041F +S3061C0001BAE33F +S3061C0001BB9B86 +S3061C0001BC849C +S3061C0001BDFF20 +S3061C0001BEB767 +S3061C0001BF0716 +S3061C0001C0100C +S3061C0001C1001B +S3061C0001C2D842 +S3061C0001C343D6 +S3061C0001C4E335 +S3061C0001C54FC8 +S3061C0001C6070F +S3061C0001C7FE17 +S3061C0001C837DD +S3061C0001C916FD +S3061C0001CA0111 +S3061C0001CB1CF5 +S3061C0001CC23ED +S3061C0001CDA06F +S3061C0001CE57B7 +S3061C0001CF030A +S3061C0001D013F9 +S3061C0001D10704 +S3061C0001D20604 +S3061C0001D340C9 +S3061C0001D4D830 +S3061C0001D5D334 +S3061C0001D613F3 +S3061C0001D70EF7 +S3061C0001D80004 +S3061C0001D904FF +S3061C0001DA23DF +S3061C0001DBA45D +S3061C0001DCC739 +S3061C0001DD03FC +S3061C0001DE11ED +S3061C0001DF43BA +S3061C0001E023D9 +S3061C0001E1A655 +S3061C0001E26793 +S3061C0001E302F7 +S3061C0001E49365 +S3061C0001E508EF +S3061C0001E600F6 +S3061C0001E702F3 +S3061C0001E823D1 +S3061C0001E9A84B +S3061C0001EA17DB +S3061C0001EB03EE +S3061C0001EC21CF +S3061C0001ED48A7 +S3061C0001EE23CB +S3061C0001EFAA43 +S3061C0001F007E5 +S3061C0001F103E8 +S3061C0001F213D7 +S3061C0001F305E4 +S3061C0001F400E8 +S3061C0001F510D7 +S3061C0001F6885E +S3061C0001F7DF06 +S3061C0001F89351 +S3061C0001F905DE +S3061C0001FA00E2 +S3061C0001FB08D9 +S3061C0001FCCC14 +S3061C0001FDDF00 +S3061C0001FE23BB +S3061C0001FFA03D +S3061C0002006774 +S3061C00020104D6 +S3061C00020223B6 +S3061C000203A236 +S3061C00020417C0 +S3061C00020505D1 +S3061C00020623B2 +S3061C000207A430 +S3061C00020807CC +S3061C00020905CD +S3061C00020AE8E9 +S3061C00020BC709 +S3061C00020CAC23 +S3061C00020DCB03 +S3061C00020E3796 +S3061C00020F17B5 +S3061C00021001CA +S3061C0002111CAE +S3061C00021223A6 +S3061C000213AA1E +S3061C0002147750 +S3061C00021505C1 +S3061C00021613B2 +S3061C00021707BD +S3061C00021807BC +S3061C000219C002 +S3061C00021AB809 +S3061C00021BCFF1 +S3061C00021C239C +S3061C00021DAE10 +S3061C00021EC7F6 +S3061C00021F05B7 +S3061C0002202398 +S3061C000221A01A +S3061C0002226752 +S3061C00022306B2 +S3061C0002242394 +S3061C000225A214 +S3061C000226179E +S3061C00022707AD +S3061C0002282390 +S3061C000229A40E +S3061C00022A07AA +S3061C00022B07A9 +S3061C00022CE8C7 +S3061C00022DD7D7 +S3061C00022EAC01 +S3061C00022FDBD1 +S3061C0002302388 +S3061C000231AA00 +S3061C0002326742 +S3061C00023306A2 +S3061C0002342384 +S3061C000235ACFA +S3061C000236178E +S3061C000237079D +S3061C0002382380 +S3061C000239AEF4 +S3061C00023A079A +S3061C00023B0799 +S3061C00023C237C +S3061C00023DA0FE +S3061C00023EA7F6 +S3061C00023F0894 +S3061C0002402378 +S3061C000241A2F8 +S3061C000242B7E2 +S3061C0002430890 +S3061C000244B7E0 +S3061C0002450690 +S3061C0002460194 +S3061C0002471C78 +S3061C0002482370 +S3061C000249A4EE +S3061C00024A672A +S3061C00024B0987 +S3061C00024C93FC +S3061C00024D8608 +S3061C00024E0687 +S3061C00024F404C +S3061C0002502368 +S3061C000251A6E4 +S3061C000252D7B2 +S3061C0002530880 +S3061C0002542364 +S3061C000255A8DE +S3061C000256C7BE +S3061C000257097B +S3061C0002582360 +S3061C000259AAD8 +S3061C00025A671A +S3061C00025B0878 +S3061C00025C235C +S3061C00025DACD2 +S3061C00025E1766 +S3061C00025F0973 +S3061C0002602358 +S3061C000261AECC +S3061C0002620772 +S3061C000263096F +S3061C0002642354 +S3061C000265A0D6 +S3061C000266A7CE +S3061C0002670A6A +S3061C0002682350 +S3061C000269A2D0 +S3061C00026AB7BA +S3061C00026B0A66 +S3061C00026C234C +S3061C00026DA4CA +S3061C00026E6706 +S3061C00026F0A62 +S3061C0002702348 +S3061C000271A6C4 +S3061C0002721752 +S3061C0002730B5D +S3061C0002742344 +S3061C000275A8BE +S3061C000276075E +S3061C0002770B59 +S3061C0002782340 +S3061C000279AAB8 +S3061C00027AA7BA +S3061C00027B0A56 +S3061C00027C233C +S3061C00027DACB2 +S3061C00027EB7A6 +S3061C00027F0A52 +S3061C0002802338 +S3061C000281A0BA +S3061C0002820752 +S3061C0002830058 +S3061C00028473E4 +S3061C0002850056 +S3061C0002865005 +S3061C0002871044 +S3061C000288054E +S3061C00028968EA +S3061C00028A133E +S3061C00028B064A +S3061C00028C0649 +S3061C00028D400E +S3061C00028E133A +S3061C00028F0844 +S3061C0002900843 +S3061C00029180CA +S3061C0002923217 +S3061C00029398B0 +S3061C00029481C6 +S3061C0002954501 +S3061C0002961C29 +S3061C0002974202 +S3061C0002980340 +S3061C000299251D +S3061C00029A0938 +S3061C00029B0040 +S3061C00029C112E +S3061C00029D0638 +S3061C00029E112C +S3061C00029F0933 +S3061C0002A089B2 +S3061C0002A18FAB +S3061C0002A2B386 +S3061C0002A33701 +S3061C0002A4F047 +S3061C0002A50036 +S3061C0002A6BE77 +S3061C0002A7959F +S3061C0002A8E350 +S3061C0002A9171B +S3061C0002AA062B +S3061C0002ABFF31 +S3061C0002ACB27D +S3061C0002AD47E7 +S3061C0002AE0528 +S3061C0002AF65C7 +S3061C0002B01318 +S3061C0002B10525 +S3061C0002B20524 +S3061C0002B380A8 +S3061C0002B4BE69 +S3061C0002B59591 +S3061C0002B62EF7 +S3061C0002B7C65E +S3061C0002B83AE9 +S3061C0002B9958D +S3061C0002BA0120 +S3061C0002BB46DA +S3061C0002BC1C03 +S3061C0002BD43DB +S3061C0002BE0C11 +S3061C0002BF40DC +S3061C0002C0110A +S3061C0002C10713 +S3061C0002C21108 +S3061C0002C30414 +S3061C0002C48D8A +S3061C0002C58F87 +S3061C0002C6B362 +S3061C0002C737DD +S3061C0002C8F023 +S3061C0002C90012 +S3061C0002CA3ED3 +S3061C0002CB967A +S3061C0002CCE32C +S3061C0002CD18F6 +S3061C0002CEE528 +S3061C0002CFFE0E +S3061C0002D0B259 +S3061C0002D147C3 +S3061C0002D28584 +S3061C0002D365A3 +S3061C0002D49374 +S3061C0002D58581 +S3061C0002D60500 +S3061C0002D78084 +S3061C0002D83EC5 +S3061C0002D9966C +S3061C0002DA36CB +S3061C0002DB8779 +S3061C0002DCB649 +S3061C0002DD9569 +S3061C0002DE32CB +S3061C0002DFC636 +S3061C0002E0817A +S3061C0002E146B4 +S3061C0002E21CDD +S3061C0002E343B5 +S3061C0002E403F4 +S3061C0002E5A650 +S3061C0002E609EC +S3061C0002E700F4 +S3061C0002E811E2 +S3061C0002E907EB +S3061C0002EA9160 +S3061C0002EB09E7 +S3061C0002EC915E +S3061C0002ED8F5F +S3061C0002EEB33A +S3061C0002EF37B5 +S3061C0002F0F0FB +S3061C0002F100EA +S3061C0002F2BE2B +S3061C0002F39652 +S3061C0002F4E304 +S3061C0002F5974F +S3061C0002F6E500 +S3061C0002F7FEE6 +S3061C0002F8B231 +S3061C0002F9479B +S3061C0002FAF2EF +S3061C0002FB5090 +S3061C0002FC627D +S3061C0002FD548A +S3061C0002FEBE1F +S3061C0002FF9646 +S3061C00030036A4 +S3061C000301C613 +S3061C00030232A6 +S3061C0003034790 +S3061C000304B71F +S3061C00030507CE +S3061C00030600D4 +S3061C0003078053 +S3061C000308D200 +S3061C000309547D +S3061C00030A9838 +S3061C00030BC30C +S3061C00030C329C +S3061C00030D4588 +S3061C00030E428A +S3061C00030F5972 +S3061C000310B218 +S3061C0003115970 +S3061C00031222A6 +S3061C0003135A6D +S3061C0003149234 +S3061C0003155A6B +S3061C00031602C2 +S3061C0003175B68 +S3061C000318F2D0 +S3061C0003194B76 +S3061C00031A625E +S3061C00031B4C73 +S3061C00031C219D +S3061C00031D615C +S3061C00031E823A +S3061C00031F803B +S3061C01000000DC +S3061C01000100DB +S3061C01000200DA +S3061C01000300D9 +S3061C0100040BCD +S3061C01000500D7 +S3061C01000600D6 +S3061C01000713C2 +S3061C01000816BE +S3061C01000900D3 +S3061C01000A00D2 +S3061C01000B26AB +S3061C01000C1DB3 +S3061C01000D00CF +S3061C01000E00CE +S3061C01000F3598 +S3061C0100102CA0 +S3061C01001100CB +S3061C01001200CA +S3061C0100134C7D +S3061C01001427A1 +S3061C01001500C7 +S3061C01001600C6 +S3061C0100175F66 +S3061C0100183A8A +S3061C01001900C3 +S3061C01001A00C2 +S3061C01001B6A57 +S3061C01001C318F +S3061C01001D00BF +S3061C01001E00BE +S3061C01001F7944 +S3061C0100205864 +S3061C01002100BB +S3061C01002200BA +S3061C0100239821 +S3061C0100245365 +S3061C01002500B7 +S3061C01002600B6 +S3061C0100278B2A +S3061C0100284E66 +S3061C01002900B3 +S3061C01002A00B2 +S3061C01002BBEF3 +S3061C01002C456B +S3061C01002D00AF +S3061C01002E00AE +S3061C01002FAD00 +S3061C0100307438 +S3061C01003100AB +S3061C01003200AA +S3061C010033D4D5 +S3061C0100347F29 +S3061C01003500A7 +S3061C01003600A6 +S3061C010037C7DE +S3061C0100386242 +S3061C01003900A3 +S3061C01003A00A2 +S3061C01003BF2AF +S3061C01003C6937 +S3061C01003D009F +S3061C01003E009E +S3061C01003FE1BC +S3061C0100401F7D +S3061C010041009B +S3061C010042009A +S3061C0100433069 +S3061C0100441484 +S3061C0100450097 +S3061C0100460096 +S3061C0100472372 +S3061C010048098B +S3061C0100490093 +S3061C01004A0092 +S3061C01004B167B +S3061C01004C028E +S3061C01004D008F +S3061C01004E008E +S3061C01004F0588 +S3061C0100503359 +S3061C010051008B +S3061C010052008A +S3061C0100537C0D +S3061C0100543850 +S3061C0100550087 +S3061C0100560086 +S3061C0100576F16 +S3061C010058255F +S3061C0100590083 +S3061C01005A0082 +S3061C01005B5A27 +S3061C01005C2E52 +S3061C01005D007F +S3061C01005E007E +S3061C01005F4934 +S3061C0100604735 +S3061C010061007B +S3061C010062007A +S3061C010063A8D1 +S3061C0100644C2C +S3061C0100650077 +S3061C0100660076 +S3061C010067BBBA +S3061C0100685123 +S3061C0100690073 +S3061C01006A0072 +S3061C01006B8EE3 +S3061C01006C5A16 +S3061C01006D006F +S3061C01006E006E +S3061C01006F9DD0 +S3061C0100706B01 +S3061C010071006B +S3061C010072006A +S3061C010073E485 +S3061C0100746008 +S3061C0100750067 +S3061C0100760066 +S3061C010077F76E +S3061C0100787DE7 +S3061C0100790063 +S3061C01007A0062 +S3061C01007BC29F +S3061C01007C76EA +S3061C01007D005F +S3061C01007E005E +S3061C01007FD18C +S3061C0100803E1E +S3061C010081005B +S3061C010082005A +S3061C01008360F9 +S3061C0100843523 +S3061C0100850057 +S3061C0100860056 +S3061C01008773E2 +S3061C010088282C +S3061C0100890053 +S3061C01008A0052 +S3061C01008B460B +S3061C01008C232D +S3061C01008D004F +S3061C01008E004E +S3061C01008F55F8 +S3061C010090123A +S3061C010091004B +S3061C010092004A +S3061C0100932C1D +S3061C010094192F +S3061C0100950047 +S3061C0100960046 +S3061C0100973F06 +S3061C0100980440 +S3061C0100990043 +S3061C01009A0042 +S3061C01009B0A37 +S3061C01009C0F31 +S3061C01009D003F +S3061C01009E003E +S3061C01009F1924 +S3061C0100A066D6 +S3061C0100A1003B +S3061C0100A2003A +S3061C0100A3F841 +S3061C0100A46DCB +S3061C0100A50037 +S3061C0100A60036 +S3061C0100A7EB4A +S3061C0100A870C4 +S3061C0100A90033 +S3061C0100AA0032 +S3061C0100ABDE53 +S3061C0100AC7BB5 +S3061C0100AD002F +S3061C0100AE002E +S3061C0100AFCD60 +S3061C0100B04AE2 +S3061C0100B1002B +S3061C0100B2002A +S3061C0100B3B475 +S3061C0100B441E7 +S3061C0100B50027 +S3061C0100B60026 +S3061C0100B7A77E +S3061C0100B85CC8 +S3061C0100B90023 +S3061C0100BA0022 +S3061C0100BB928F +S3061C0100BC57C9 +S3061C0100BD001F +S3061C0100BE001E +S3061C0100BF819C +S3061C0100C021FB +S3061C0100C1001B +S3061C0100C2001A +S3061C0100C350C9 +S3061C0100C42AEE +S3061C0100C50017 +S3061C0100C60016 +S3061C0100C743D2 +S3061C0100C837DD +S3061C0100C90013 +S3061C0100CA0012 +S3061C0100CB769B +S3061C0100CC3CD4 +S3061C0100CD000F +S3061C0100CE000E +S3061C0100CF65A8 +S3061C0100D00DFF +S3061C0100D1000B +S3061C0100D2000A +S3061C0100D31CED +S3061C0100D40602 +S3061C0100D50007 +S3061C0100D60006 +S3061C0100D70FF6 +S3061C0100D81BE9 +S3061C0100D90003 +S3061C0100DA0002 +S3061C0100DB3AC7 +S3061C0100DC10F0 +S3061C0100DD00FF +S3061C0100DE00FE +S3061C0100DF29D4 +S3061C0100E07983 +S3061C0100E100FB +S3061C0100E200FA +S3061C0100E3C831 +S3061C0100E47286 +S3061C0100E500F7 +S3061C0100E600F6 +S3061C0100E7DB1A +S3061C0100E86F85 +S3061C0100E900F3 +S3061C0100EA00F2 +S3061C0100EBEE03 +S3061C0100EC648C +S3061C0100ED00EF +S3061C0100EE00EE +S3061C0100EFFDF0 +S3061C0100F05597 +S3061C0100F100EB +S3061C0100F200EA +S3061C0100F38465 +S3061C0100F45E8A +S3061C0100F500E7 +S3061C0100F600E6 +S3061C0100F7974E +S3061C0100F843A1 +S3061C0100F900E3 +S3061C0100FA00E2 +S3061C0100FBA23F +S3061C0100FC4898 +S3061C0100FD00DF +S3061C0100FE00DE +S3061C0100FFB12C +S3061C0101007C5F +S3061C01010100DA +S3061C01010200D9 +S3061C010103C018 +S3061C0101047760 +S3061C01010500D6 +S3061C01010600D5 +S3061C010107D301 +S3061C0101086A69 +S3061C01010900D2 +S3061C01010A00D1 +S3061C01010BE6EA +S3061C01010C616E +S3061C01010D00CE +S3061C01010E00CD +S3061C01010FF5D7 +S3061C010110507B +S3061C01011100CA +S3061C01011200C9 +S3061C0101138C3C +S3061C0101145B6C +S3061C01011500C6 +S3061C01011600C5 +S3061C0101179F25 +S3061C010118467D +S3061C01011900C2 +S3061C01011A00C1 +S3061C01011BAA16 +S3061C01011C4D72 +S3061C01011D00BE +S3061C01011E00BD +S3061C01011FB903 +S3061C0101202497 +S3061C01012100BA +S3061C01012200B9 +S3061C0101235860 +S3061C0101242F88 +S3061C01012500B6 +S3061C01012600B5 +S3061C0101274B69 +S3061C0101283281 +S3061C01012900B2 +S3061C01012A00B1 +S3061C01012B7E32 +S3061C01012C3976 +S3061C01012D00AE +S3061C01012E00AD +S3061C01012F6D3F +S3061C01013008A3 +S3061C01013100AA +S3061C01013200A9 +S3061C0101331494 +S3061C01013403A4 +S3061C01013500A6 +S3061C01013600A5 +S3061C010137079D +S3061C0101381E85 +S3061C01013900A2 +S3061C01013A00A1 +S3061C01013B326E +S3061C01013C158A +S3061C01013D009E +S3061C01013E009D +S3061C01013F217B +S3061C0101406338 +S3061C010141009A +S3061C0101420099 +S3061C010143F0A8 +S3061C010144682F +S3061C0101450096 +S3061C0101460095 +S3061C010147E3B1 +S3061C010148751E +S3061C0101490092 +S3061C01014A0091 +S3061C01014BD6BA +S3061C01014C7E11 +S3061C01014D008E +S3061C01014E008D +S3061C01014FC5C7 +S3061C0101504F3C +S3061C010151008A +S3061C0101520089 +S3061C010153BCCC +S3061C0101544443 +S3061C0101550086 +S3061C0101560085 +S3061C010157AFD5 +S3061C010158592A +S3061C0101590082 +S3061C01015A0081 +S3061C01015B9AE6 +S3061C01015C522D +S3061C01015D007E +S3061C01015E007D +S3061C01015F89F3 +S3061C0101603B40 +S3061C010161007A +S3061C0101620079 +S3061C0101636810 +S3061C0101643047 +S3061C0101650076 +S3061C0101660075 +S3061C0101677BF9 +S3061C0101682D46 +S3061C0101690072 +S3061C01016A0071 +S3061C01016B4E22 +S3061C01016C2649 +S3061C01016D006E +S3061C01016E006D +S3061C01016F5D0F +S3061C0101701754 +S3061C010171006A +S3061C0101720069 +S3061C0101732444 +S3061C0101741C4B +S3061C0101750066 +S3061C0101760065 +S3061C010177372D +S3061C0101780162 +S3061C0101790062 +S3061C01017A0061 +S3061C01017B025E +S3061C01017C0A55 +S3061C01017D005E +S3061C01017E005D +S3061C01017F114B +S3061C0101804219 +S3061C010181005A +S3061C0101820059 +S3061C010183A0B8 +S3061C010184490E +S3061C0101850056 +S3061C0101860055 +S3061C010187B3A1 +S3061C01018854FF +S3061C0101890052 +S3061C01018A0051 +S3061C01018B86CA +S3061C01018C5FF0 +S3061C01018D004E +S3061C01018E004D +S3061C01018F95B7 +S3061C0101906EDD +S3061C010191004A +S3061C0101920049 +S3061C010193EC5C +S3061C01019465E2 +S3061C0101950046 +S3061C0101960045 +S3061C010197FF45 +S3061C01019878CB +S3061C0101990042 +S3061C01019A0041 +S3061C01019BCA76 +S3061C01019C73CC +S3061C01019D003E +S3061C01019E003D +S3061C01019FD963 +S3061C0101A01A21 +S3061C0101A1003A +S3061C0101A20039 +S3061C0101A33800 +S3061C0101A41126 +S3061C0101A50036 +S3061C0101A60035 +S3061C0101A72B09 +S3061C0101A80C27 +S3061C0101A90032 +S3061C0101AA0031 +S3061C0101AB1E12 +S3061C0101AC0728 +S3061C0101AD002E +S3061C0101AE002D +S3061C0101AF0D1F +S3061C0101B036F5 +S3061C0101B1002A +S3061C0101B20029 +S3061C0101B374B4 +S3061C0101B43DEA +S3061C0101B50026 +S3061C0101B60025 +S3061C0101B767BD +S3061C0101B82003 +S3061C0101B90022 +S3061C0101BA0021 +S3061C0101BB52CE +S3061C0101BC2BF4 +S3061C0101BD001E +S3061C0101BE001D +S3061C0101BF41DB +S3061C0101C05DBE +S3061C0101C1001A +S3061C0101C20019 +S3061C0101C39088 +S3061C0101C456C1 +S3061C0101C50016 +S3061C0101C60015 +S3061C0101C78391 +S3061C0101C84BC8 +S3061C0101C90012 +S3061C0101CA0011 +S3061C0101CBB65A +S3061C0101CC40CF +S3061C0101CD000E +S3061C0101CE000D +S3061C0101CFA567 +S3061C0101D0719A +S3061C0101D1000A +S3061C0101D20009 +S3061C0101D3DC2C +S3061C0101D47A8D +S3061C0101D50006 +S3061C0101D60005 +S3061C0101D7CF35 +S3061C0101D8679C +S3061C0101D90002 +S3061C0101DA0001 +S3061C0101DBFA06 +S3061C0101DC6C93 +S3061C0101DD00FE +S3061C0101DE00FD +S3061C0101DFE913 +S3061C0101E005F6 +S3061C0101E100FA +S3061C0101E200F9 +S3061C0101E308F0 +S3061C0101E40EE9 +S3061C0101E500F6 +S3061C0101E600F5 +S3061C0101E71BD9 +S3061C0101E813E0 +S3061C0101E900F2 +S3061C0101EA00F1 +S3061C0101EB2EC2 +S3061C0101EC18D7 +S3061C0101ED00EE +S3061C0101EE00ED +S3061C0101EF3DAF +S3061C0101F029C2 +S3061C0101F100EA +S3061C0101F200E9 +S3061C0101F344A4 +S3061C0101F422C5 +S3061C0101F500E6 +S3061C0101F600E5 +S3061C0101F7578D +S3061C0101F83FA4 +S3061C0101F900E2 +S3061C0101FA00E1 +S3061C0101FB627E +S3061C0101FC34AB +S3061C0101FD00DE +S3061C0101FE00DD +S3061C0101FF716B +S3061C0102005783 +S3061C01020100D9 +S3061C01020200D8 +S3061C0102038057 +S3061C0102045C7A +S3061C01020500D5 +S3061C01020600D4 +S3061C0102079340 +S3061C0102084191 +S3061C01020900D1 +S3061C01020A00D0 +S3061C01020BA629 +S3061C01020C4A84 +S3061C01020D00CD +S3061C01020E00CC +S3061C01020FB516 +S3061C0102107B4F +S3061C01021100C9 +S3061C01021200C8 +S3061C010213CCFB +S3061C0102147056 +S3061C01021500C5 +S3061C01021600C4 +S3061C010217DFE4 +S3061C0102186D55 +S3061C01021900C1 +S3061C01021A00C0 +S3061C01021BEAD5 +S3061C01021C6658 +S3061C01021D00BD +S3061C01021E00BC +S3061C01021FF9C2 +S3061C0102200FAB +S3061C01022100B9 +S3061C01022200B8 +S3061C010223189F +S3061C01022404B2 +S3061C01022500B5 +S3061C01022600B4 +S3061C0102270BA8 +S3061C0102281999 +S3061C01022900B1 +S3061C01022A00B0 +S3061C01022B3E71 +S3061C01022C129C +S3061C01022D00AD +S3061C01022E00AC +S3061C01022F2D7E +S3061C0102302387 +S3061C01023100A9 +S3061C01023200A8 +S3061C0102335453 +S3061C010234287E +S3061C01023500A5 +S3061C01023600A4 +S3061C010237475C +S3061C010238356D +S3061C01023900A1 +S3061C01023A00A0 +S3061C01023B722D +S3061C01023C3E60 +S3061C01023D009D +S3061C01023E009C +S3061C01023F613A +S3061C0102404852 +S3061C0102410099 +S3061C0102420098 +S3061C010243B0E7 +S3061C0102444353 +S3061C0102450095 +S3061C0102460094 +S3061C010247A3F0 +S3061C0102485E34 +S3061C0102490091 +S3061C01024A0090 +S3061C01024B96F9 +S3061C01024C5539 +S3061C01024D008D +S3061C01024E008C +S3061C01024F8506 +S3061C0102506426 +S3061C0102510089 +S3061C0102520088 +S3061C010253FC8B +S3061C0102546F17 +S3061C0102550085 +S3061C0102560084 +S3061C010257EF94 +S3061C0102587210 +S3061C0102590081 +S3061C01025A0080 +S3061C01025BDAA5 +S3061C01025C7905 +S3061C01025D007D +S3061C01025E007C +S3061C01025FC9B2 +S3061C010260106A +S3061C0102610079 +S3061C0102620078 +S3061C010263284F +S3061C0102641B5B +S3061C0102650075 +S3061C0102660074 +S3061C0102673B38 +S3061C010268066C +S3061C0102690071 +S3061C01026A0070 +S3061C01026B0E61 +S3061C01026C0D61 +S3061C01026D006D +S3061C01026E006C +S3061C01026F1D4E +S3061C0102703C2E +S3061C0102710069 +S3061C0102720068 +S3061C0102736403 +S3061C010274372F +S3061C0102750065 +S3061C0102760064 +S3061C01027777EC +S3061C0102782A38 +S3061C0102790061 +S3061C01027A0060 +S3061C01027B421D +S3061C01027C213D +S3061C01027D005D +S3061C01027E005C +S3061C01027F510A +S3061C01028069F1 +S3061C0102810059 +S3061C0102820058 +S3061C010283E077 +S3061C01028462F4 +S3061C0102850055 +S3061C0102860054 +S3061C010287F360 +S3061C0102887FD3 +S3061C0102890051 +S3061C01028A0050 +S3061C01028BC689 +S3061C01028C74DA +S3061C01028D004D +S3061C01028E004C +S3061C01028FD576 +S3061C0102904505 +S3061C0102910049 +S3061C0102920048 +S3061C010293AC9B +S3061C0102944EF8 +S3061C0102950045 +S3061C0102960044 +S3061C010297BF84 +S3061C01029853EF +S3061C0102990041 +S3061C01029A0040 +S3061C01029B8AB5 +S3061C01029C58E6 +S3061C01029D003D +S3061C01029E003C +S3061C01029F99A2 +S3061C0102A03109 +S3061C0102A10039 +S3061C0102A20038 +S3061C0102A378BF +S3061C0102A43AFC +S3061C0102A50035 +S3061C0102A60034 +S3061C0102A76BC8 +S3061C0102A8270B +S3061C0102A90031 +S3061C0102AA0030 +S3061C0102AB5ED1 +S3061C0102AC2C02 +S3061C0102AD002D +S3061C0102AE002C +S3061C0102AF4DDE +S3061C0102B01D0D +S3061C0102B10029 +S3061C0102B20028 +S3061C0102B334F3 +S3061C0102B41610 +S3061C0102B50025 +S3061C0102B60024 +S3061C0102B727FC +S3061C0102B80B17 +S3061C0102B90021 +S3061C0102BA0020 +S3061C0102BB120D +S3061C0102BC001E +S3061C0102BD001D +S3061C0102BE001C +S3061C0102BF011A +S3061C0102C076A4 +S3061C0102C10019 +S3061C0102C20018 +S3061C0102C3D047 +S3061C0102C47D99 +S3061C0102C50015 +S3061C0102C60014 +S3061C0102C7C350 +S3061C0102C860B2 +S3061C0102C90011 +S3061C0102CA0010 +S3061C0102CBF619 +S3061C0102CC6BA3 +S3061C0102CD000D +S3061C0102CE000C +S3061C0102CFE526 +S3061C0102D05AB0 +S3061C0102D10009 +S3061C0102D20008 +S3061C0102D39C6B +S3061C0102D451B5 +S3061C0102D50005 +S3061C0102D60004 +S3061C0102D78F74 +S3061C0102D84CB6 +S3061C0102D90001 +S3061C0102DA0000 +S3061C0102DBBA45 +S3061C0102DC47B7 +S3061C0102DD00FD +S3061C0102DE00FC +S3061C0102DFA952 +S3061C0102E02ECC +S3061C0102E100F9 +S3061C0102E200F8 +S3061C0102E348AF +S3061C0102E425D1 +S3061C0102E500F5 +S3061C0102E600F4 +S3061C0102E75B98 +S3061C0102E838BA +S3061C0102E900F1 +S3061C0102EA00F0 +S3061C0102EB6E81 +S3061C0102EC33BB +S3061C0102ED00ED +S3061C0102EE00EC +S3061C0102EF7D6E +S3061C0102F002E8 +S3061C0102F100E9 +S3061C0102F200E8 +S3061C0102F304E3 +S3061C0102F409DD +S3061C0102F500E5 +S3061C0102F600E4 +S3061C0102F717CC +S3061C0102F814CE +S3061C0102F900E1 +S3061C0102FA00E0 +S3061C0102FB22BD +S3061C0102FC1FBF +S3061C0102FD00DD +S3061C0102FE00DC +S3061C0102FF31AA +S3061C0103002BAE +S3061C01030100D8 +S3061C01030200D7 +S3061C0103034096 +S3061C01030420B5 +S3061C01030500D4 +S3061C01030600D3 +S3061C010307537F +S3061C0103083D94 +S3061C01030900D0 +S3061C01030A00CF +S3061C01030B6668 +S3061C01030C3697 +S3061C01030D00CC +S3061C01030E00CB +S3061C01030F7555 +S3061C01031007C2 +S3061C01031100C8 +S3061C01031200C7 +S3061C0103130CBA +S3061C0103140CB9 +S3061C01031500C4 +S3061C01031600C3 +S3061C0103171FA3 +S3061C01031811B0 +S3061C01031900C0 +S3061C01031A00BF +S3061C01031B2A94 +S3061C01031C1AA3 +S3061C01031D00BC +S3061C01031E00BB +S3061C01031F3981 +S3061C0103207346 +S3061C01032100B8 +S3061C01032200B7 +S3061C010323D8DE +S3061C010324783D +S3061C01032500B4 +S3061C01032600B3 +S3061C010327CBE7 +S3061C010328654C +S3061C01032900B0 +S3061C01032A00AF +S3061C01032BFEB0 +S3061C01032C6E3F +S3061C01032D00AC +S3061C01032E00AB +S3061C01032FEDBD +S3061C0103305F4A +S3061C01033100A8 +S3061C01033200A7 +S3061C0103339412 +S3061C0103345451 +S3061C01033500A4 +S3061C01033600A3 +S3061C010337871B +S3061C0103384958 +S3061C01033900A0 +S3061C01033A009F +S3061C01033BB2EC +S3061C01033C425B +S3061C01033D009C +S3061C01033E009B +S3061C01033FA1F9 +S3061C0103403465 +S3061C0103410098 +S3061C0103420097 +S3061C0103437026 +S3061C0103443F56 +S3061C0103450094 +S3061C0103460093 +S3061C010347632F +S3061C010348226F +S3061C0103490090 +S3061C01034A008F +S3061C01034B5638 +S3061C01034C2964 +S3061C01034D008C +S3061C01034E008B +S3061C01034F4545 +S3061C0103501871 +S3061C0103510088 +S3061C0103520087 +S3061C0103533C4A +S3061C0103541372 +S3061C0103550084 +S3061C0103560083 +S3061C0103572F53 +S3061C0103580E73 +S3061C0103590080 +S3061C01035A007F +S3061C01035B1A64 +S3061C01035C0578 +S3061C01035D007C +S3061C01035E007B +S3061C01035F0971 +S3061C0103606C0D +S3061C0103610078 +S3061C0103620077 +S3061C010363E88E +S3061C010364670E +S3061C0103650074 +S3061C0103660073 +S3061C010367FB77 +S3061C0103687AF7 +S3061C0103690070 +S3061C01036A006F +S3061C01036BCEA0 +S3061C01036C71FC +S3061C01036D006C +S3061C01036E006B +S3061C01036FDD8D +S3061C0103704029 +S3061C0103710068 +S3061C0103720067 +S3061C010373A4C2 +S3061C0103744B1A +S3061C0103750064 +S3061C0103760063 +S3061C010377B7AB +S3061C010378560B +S3061C0103790060 +S3061C01037A005F +S3061C01037B82DC +S3061C01037C5D00 +S3061C01037D005C +S3061C01037E005B +S3061C01037F91C9 +S3061C0103801544 +S3061C0103810058 +S3061C0103820057 +S3061C0103832036 +S3061C0103841E37 +S3061C0103850054 +S3061C0103860053 +S3061C010387331F +S3061C010388034E +S3061C0103890050 +S3061C01038A004F +S3061C01038B0648 +S3061C01038C0845 +S3061C01038D004C +S3061C01038E004B +S3061C01038F1535 +S3061C0103903910 +S3061C0103910048 +S3061C0103920047 +S3061C0103936CDA +S3061C0103943213 +S3061C0103950044 +S3061C0103960043 +S3061C0103977FC3 +S3061C0103982F12 +S3061C0103990040 +S3061C01039A003F +S3061C01039B4AF4 +S3061C01039C2419 +S3061C01039D003C +S3061C01039E003B +S3061C01039F59E1 +S3061C0103A04DEC +S3061C0103A10038 +S3061C0103A20037 +S3061C0103A3B87E +S3061C0103A446EF +S3061C0103A50034 +S3061C0103A60033 +S3061C0103A7AB87 +S3061C0103A85BD6 +S3061C0103A90030 +S3061C0103AA002F +S3061C0103AB9E90 +S3061C0103AC50DD +S3061C0103AD002C +S3061C0103AE002B +S3061C0103AF8D9D +S3061C0103B061C8 +S3061C0103B10028 +S3061C0103B20027 +S3061C0103B3F432 +S3061C0103B46ABB +S3061C0103B50024 +S3061C0103B60023 +S3061C0103B7E73B +S3061C0103B877AA +S3061C0103B90020 +S3061C0103BA001F +S3061C0103BBD24C +S3061C0103BC7CA1 +S3061C0103BD001C +S3061C0103BE001B +S3061C0103BFC159 +S3061C0103C00A0F +S3061C0103C10018 +S3061C0103C20017 +S3061C0103C31006 +S3061C0103C40114 +S3061C0103C50014 +S3061C0103C60013 +S3061C0103C7030F +S3061C0103C81CF5 +S3061C0103C90010 +S3061C0103CA000F +S3061C0103CB36D8 +S3061C0103CC17F6 +S3061C0103CD000C +S3061C0103CE000B +S3061C0103CF25E5 +S3061C0103D026E3 +S3061C0103D10008 +S3061C0103D20007 +S3061C0103D35CAA +S3061C0103D42DD8 +S3061C0103D50004 +S3061C0103D60003 +S3061C0103D74FB3 +S3061C0103D830D1 +S3061C0103D90000 +S3061C0103DA00FF +S3061C0103DB7A84 +S3061C0103DC3BC2 +S3061C0103DD00FC +S3061C0103DE00FB +S3061C0103DF6991 +S3061C0103E052A7 +S3061C0103E100F8 +S3061C0103E200F7 +S3061C0103E3886E +S3061C0103E4599C +S3061C0103E500F4 +S3061C0103E600F3 +S3061C0103E79B57 +S3061C0103E844AD +S3061C0103E900F0 +S3061C0103EA00EF +S3061C0103EBAE40 +S3061C0103EC4F9E +S3061C0103ED00EC +S3061C0103EE00EB +S3061C0103EFBD2D +S3061C0103F07E6B +S3061C0103F100E8 +S3061C0103F200E7 +S3061C0103F3C422 +S3061C0103F47570 +S3061C0103F500E4 +S3061C0103F600E3 +S3061C0103F7D70B +S3061C0103F86879 +S3061C0103F900E0 +S3061C0103FA00DF +S3061C0103FBE2FC +S3061C0103FC637A +S3061C0103FD00DC +S3061C0103FE00DB +S3061C0103FFF1E9 +S3061C01040000D8 +S3061C01040100D7 +S3061C01040200D6 +S3061C01040300D5 +S3061C01040400D4 +S3061C01040500D3 +S3061C01040600D2 +S3061C01040700D1 +S3061C01040800D0 +S3061C01040900CF +S3061C01040A00CE +S3061C01040B00CD +S3061C01040C00CC +S3061C01040D00CB +S3061C01040E00CA +S3061C01040F00C9 +S3061C01041000C8 +S3061C01041100C7 +S3061C01041200C6 +S3061C01041300C5 +S3061C01041400C4 +S3061C01041500C3 +S3061C01041600C2 +S3061C01041700C1 +S3061C01041800C0 +S3061C01041900BF +S3061C01041A00BE +S3061C01041B00BD +S3061C01041C00BC +S3061C01041D00BB +S3061C01041E00BA +S3061C01041F00B9 +S3061C01042000B8 +S3061C01042100B7 +S3061C01042200B6 +S3061C01042300B5 +S3061C01042400B4 +S3061C01042500B3 +S3061C01042600B2 +S3061C01042700B1 +S3061C01042800B0 +S3061C01042900AF +S3061C01042A00AE +S3061C01042B00AD +S3061C01042C00AC +S3061C01042D00AB +S3061C01042E00AA +S3061C01042F00A9 +S3061C01043000A8 +S3061C01043100A7 +S3061C01043200A6 +S3061C01043300A5 +S3061C01043400A4 +S3061C01043500A3 +S3061C01043600A2 +S3061C01043700A1 +S3061C01043800A0 +S3061C010439009F +S3061C01043A009E +S3061C01043B009D +S3061C01043C009C +S3061C01043D009B +S3061C01043E009A +S3061C01043F0099 +S3061C0104400098 +S3061C0104410097 +S3061C0104420096 +S3061C0104430095 +S3061C0104440094 +S3061C0104450093 +S3061C0104460092 +S3061C0104470091 +S3061C0104480090 +S3061C010449008F +S3061C01044A008E +S3061C01044B008D +S3061C01044C008C +S3061C01044D008B +S3061C01044E008A +S3061C01044F0089 +S3061C0104500088 +S3061C0104510087 +S3061C0104520086 +S3061C0104530085 +S3061C0104540084 +S3061C0104550083 +S3061C0104560082 +S3061C0104570081 +S3061C0104580080 +S3061C010459007F +S3061C01045A007E +S3061C01045B007D +S3061C01045C007C +S3061C01045D007B +S3061C01045E007A +S3061C01045F0079 +S3061C0104600078 +S3061C0104610077 +S3061C0104620076 +S3061C0104630075 +S3061C0104640074 +S3061C0104650073 +S3061C0104660072 +S3061C0104670071 +S3061C0104680070 +S3061C010469006F +S3061C01046A006E +S3061C01046B006D +S3061C01046C006C +S3061C01046D006B +S3061C01046E006A +S3061C01046F0069 +S3061C0104700068 +S3061C0104710067 +S3061C0104720066 +S3061C0104730065 +S3061C0104740064 +S3061C0104750063 +S3061C0104760062 +S3061C0104770061 +S3061C0104780060 +S3061C010479005F +S3061C01047A005E +S3061C01047B005D +S3061C01047C005C +S3061C01047D005B +S3061C01047E005A +S3061C01047F0059 +S3061C0104800058 +S3061C0104810057 +S3061C0104820056 +S3061C0104830055 +S3061C0104840054 +S3061C0104850053 +S3061C0104860052 +S3061C0104870051 +S3061C0104880050 +S3061C010489004F +S3061C01048A004E +S3061C01048B004D +S3061C01048C004C +S3061C01048D004B +S3061C01048E004A +S3061C01048F0049 +S3061C0104900048 +S3061C0104910047 +S3061C0104920046 +S3061C0104930045 +S3061C0104940044 +S3061C0104950043 +S3061C0104960042 +S3061C0104970041 +S3061C0104980040 +S3061C010499003F +S3061C01049A003E +S3061C01049B003D +S3061C01049C003C +S3061C01049D003B +S3061C01049E003A +S3061C01049F0039 +S3061C0104A00038 +S3061C0104A10037 +S3061C0104A20036 +S3061C0104A30035 +S3061C0104A40034 +S3061C0104A50033 +S3061C0104A60032 +S3061C0104A70031 +S3061C0104A80030 +S3061C0104A9002F +S3061C0104AA002E +S3061C0104AB002D +S3061C0104AC002C +S3061C0104AD002B +S3061C0104AE002A +S3061C0104AF0029 +S3061C0104B00028 +S3061C0104B10027 +S3061C0104B20026 +S3061C0104B30025 +S3061C0104B40024 +S3061C0104B50023 +S3061C0104B60022 +S3061C0104B70021 +S3061C0104B80020 +S3061C0104B9001F +S3061C0104BA001E +S3061C0104BB001D +S3061C0104BC001C +S3061C0104BD001B +S3061C0104BE001A +S3061C0104BF0019 +S3061C0104C00018 +S3061C0104C10017 +S3061C0104C20016 +S3061C0104C30015 +S3061C0104C40014 +S3061C0104C50013 +S3061C0104C60012 +S3061C0104C70011 +S3061C0104C80010 +S3061C0104C9000F +S3061C0104CA000E +S3061C0104CB000D +S3061C0104CC000C +S3061C0104CD000B +S3061C0104CE000A +S3061C0104CF0009 +S3061C0104D00008 +S3061C0104D10007 +S3061C0104D20006 +S3061C0104D30005 +S3061C0104D40004 +S3061C0104D50003 +S3061C0104D60002 +S3061C0104D70001 +S3061C0104D80000 +S3061C0104D900FF +S3061C0104DA00FE +S3061C0104DB00FD +S3061C0104DC00FC +S3061C0104DD00FB +S3061C0104DE00FA +S3061C0104DF00F9 +S3061C0104E000F8 +S3061C0104E100F7 +S3061C0104E200F6 +S3061C0104E300F5 +S3061C0104E400F4 +S3061C0104E500F3 +S3061C0104E600F2 +S3061C0104E700F1 +S3061C0104E800F0 +S3061C0104E900EF +S3061C0104EA00EE +S3061C0104EB00ED +S3061C0104EC00EC +S3061C0104ED00EB +S3061C0104EE00EA +S3061C0104EF00E9 +S3061C0104F000E8 +S3061C0104F100E7 +S3061C0104F200E6 +S3061C0104F300E5 +S3061C0104F400E4 +S3061C0104F500E3 +S3061C0104F600E2 +S3061C0104F700E1 +S3061C0104F800E0 +S3061C0104F900DF +S3061C0104FA00DE +S3061C0104FB00DD +S3061C0104FC00DC +S3061C0104FD00DB +S3061C0104FE00DA +S3061C0104FF00D9 +S3061C01050000D7 +S3061C01050100D6 +S3061C01050200D5 +S3061C01050300D4 +S3061C01050400D3 +S3061C01050500D2 +S3061C01050600D1 +S3061C01050700D0 +S3061C01050800CF +S3061C01050900CE +S3061C01050A00CD +S3061C01050B00CC +S3061C01050C00CB +S3061C01050D00CA +S3061C01050E00C9 +S3061C01050F00C8 +S3061C01051000C7 +S3061C01051100C6 +S3061C01051200C5 +S3061C01051300C4 +S3061C01051400C3 +S3061C01051500C2 +S3061C01051600C1 +S3061C01051700C0 +S3061C01051800BF +S3061C01051900BE +S3061C01051A00BD +S3061C01051B00BC +S3061C01051C00BB +S3061C01051D00BA +S3061C01051E00B9 +S3061C01051F00B8 +S3061C01052000B7 +S3061C01052100B6 +S3061C01052200B5 +S3061C01052300B4 +S3061C01052400B3 +S3061C01052500B2 +S3061C01052600B1 +S3061C01052700B0 +S3061C01052800AF +S3061C01052900AE +S3061C01052A00AD +S3061C01052B00AC +S3061C01052C00AB +S3061C01052D00AA +S3061C01052E00A9 +S3061C01052F00A8 +S3061C01053000A7 +S3061C01053100A6 +S3061C01053200A5 +S3061C01053300A4 +S3061C01053400A3 +S3061C01053500A2 +S3061C01053600A1 +S3061C01053700A0 +S3061C010538009F +S3061C010539009E +S3061C01053A009D +S3061C01053B009C +S3061C01053C009B +S3061C01053D009A +S3061C01053E0099 +S3061C01053F0098 +S3061C0105400097 +S3061C0105410096 +S3061C0105420095 +S3061C0105430094 +S3061C0105440093 +S3061C0105450092 +S3061C0105460091 +S3061C0105470090 +S3061C010548008F +S3061C010549008E +S3061C01054A008D +S3061C01054B008C +S3061C01054C008B +S3061C01054D008A +S3061C01054E0089 +S3061C01054F0088 +S3061C0105500087 +S3061C0105510086 +S3061C0105520085 +S3061C0105530084 +S3061C0105540083 +S3061C0105550082 +S3061C0105560081 +S3061C0105570080 +S3061C010558007F +S3061C010559007E +S3061C01055A007D +S3061C01055B007C +S3061C01055C007B +S3061C01055D007A +S3061C01055E0079 +S3061C01055F0078 +S3061C0105600077 +S3061C0105610076 +S3061C0105620075 +S3061C0105630074 +S3061C0105640073 +S3061C0105650072 +S3061C0105660071 +S3061C0105670070 +S3061C010568006F +S3061C010569006E +S3061C01056A006D +S3061C01056B006C +S3061C01056C006B +S3061C01056D006A +S3061C01056E0069 +S3061C01056F0068 +S3061C0105700067 +S3061C0105710066 +S3061C0105720065 +S3061C0105730064 +S3061C0105740063 +S3061C0105750062 +S3061C0105760061 +S3061C0105770060 +S3061C010578005F +S3061C010579005E +S3061C01057A005D +S3061C01057B005C +S3061C01057C005B +S3061C01057D005A +S3061C01057E0059 +S3061C01057F0058 +S3061C0105800057 +S3061C0105810056 +S3061C0105820055 +S3061C0105830054 +S3061C0105840053 +S3061C0105850052 +S3061C0105860051 +S3061C0105870050 +S3061C010588004F +S3061C010589004E +S3061C01058A004D +S3061C01058B004C +S3061C01058C004B +S3061C01058D004A +S3061C01058E0049 +S3061C01058F0048 +S3061C0105900047 +S3061C0105910046 +S3061C0105920045 +S3061C0105930044 +S3061C0105940043 +S3061C0105950042 +S3061C0105960041 +S3061C0105970040 +S3061C010598003F +S3061C010599003E +S3061C01059A003D +S3061C01059B003C +S3061C01059C003B +S3061C01059D003A +S3061C01059E0039 +S3061C01059F0038 +S3061C0105A00037 +S3061C0105A10036 +S3061C0105A20035 +S3061C0105A30034 +S3061C0105A40033 +S3061C0105A50032 +S3061C0105A60031 +S3061C0105A70030 +S3061C0105A8002F +S3061C0105A9002E +S3061C0105AA002D +S3061C0105AB002C +S3061C0105AC002B +S3061C0105AD002A +S3061C0105AE0029 +S3061C0105AF0028 +S3061C0105B00027 +S3061C0105B10026 +S3061C0105B20025 +S3061C0105B30024 +S3061C0105B40023 +S3061C0105B50022 +S3061C0105B60021 +S3061C0105B70020 +S3061C0105B8001F +S3061C0105B9001E +S3061C0105BA001D +S3061C0105BB001C +S3061C0105BC001B +S3061C0105BD001A +S3061C0105BE0019 +S3061C0105BF0018 +S3061C0105C00017 +S3061C0105C10016 +S3061C0105C20015 +S3061C0105C30014 +S3061C0105C40013 +S3061C0105C50012 +S3061C0105C60011 +S3061C0105C70010 +S3061C0105C8000F +S3061C0105C9000E +S3061C0105CA000D +S3061C0105CB000C +S3061C0105CC000B +S3061C0105CD000A +S3061C0105CE0009 +S3061C0105CF0008 +S3061C0105D00007 +S3061C0105D10006 +S3061C0105D20005 +S3061C0105D30004 +S3061C0105D40003 +S3061C0105D50002 +S3061C0105D60001 +S3061C0105D70000 +S3061C0105D800FF +S3061C0105D900FE +S3061C0105DA00FD +S3061C0105DB00FC +S3061C0105DC00FB +S3061C0105DD00FA +S3061C0105DE00F9 +S3061C0105DF00F8 +S3061C0105E000F7 +S3061C0105E100F6 +S3061C0105E200F5 +S3061C0105E300F4 +S3061C0105E400F3 +S3061C0105E500F2 +S3061C0105E600F1 +S3061C0105E700F0 +S3061C0105E800EF +S3061C0105E900EE +S3061C0105EA00ED +S3061C0105EB00EC +S3061C0105EC00EB +S3061C0105ED00EA +S3061C0105EE00E9 +S3061C0105EF00E8 +S3061C0105F000E7 +S3061C0105F100E6 +S3061C0105F200E5 +S3061C0105F300E4 +S3061C0105F400E3 +S3061C0105F500E2 +S3061C0105F600E1 +S3061C0105F700E0 +S3061C0105F800DF +S3061C0105F900DE +S3061C0105FA00DD +S3061C0105FB00DC +S3061C0105FC00DB +S3061C0105FD00DA +S3061C0105FE00D9 +S3061C0105FF00D8 +S3061C01060000D6 +S3061C01060100D5 +S3061C01060200D4 +S3061C01060300D3 +S3061C01060400D2 +S3061C01060500D1 +S3061C01060600D0 +S3061C01060700CF +S3061C01060800CE +S3061C01060900CD +S3061C01060A00CC +S3061C01060B00CB +S3061C01060C00CA +S3061C01060D00C9 +S3061C01060E00C8 +S3061C01060F00C7 +S3061C01061000C6 +S3061C01061100C5 +S3061C01061200C4 +S3061C01061300C3 +S3061C01061400C2 +S3061C01061500C1 +S3061C01061600C0 +S3061C01061700BF +S3061C01061800BE +S3061C01061900BD +S3061C01061A00BC +S3061C01061B00BB +S3061C01061C00BA +S3061C01061D00B9 +S3061C01061E00B8 +S3061C01061F00B7 +S3061C01062000B6 +S3061C01062100B5 +S3061C01062200B4 +S3061C01062300B3 +S3061C01062400B2 +S3061C01062500B1 +S3061C01062600B0 +S3061C01062700AF +S3061C01062800AE +S3061C01062900AD +S3061C01062A00AC +S3061C01062B00AB +S3061C01062C00AA +S3061C01062D00A9 +S3061C01062E00A8 +S3061C01062F00A7 +S3061C01063000A6 +S3061C01063100A5 +S3061C01063200A4 +S3061C01063300A3 +S3061C01063400A2 +S3061C01063500A1 +S3061C01063600A0 +S3061C010637009F +S3061C010638009E +S3061C010639009D +S3061C01063A009C +S3061C01063B009B +S3061C01063C009A +S3061C01063D0099 +S3061C01063E0098 +S3061C01063F0097 +S3061C0106400096 +S3061C0106410095 +S3061C0106420094 +S3061C0106430093 +S3061C0106440092 +S3061C0106450091 +S3061C0106460090 +S3061C010647008F +S3061C010648008E +S3061C010649008D +S3061C01064A008C +S3061C01064B008B +S3061C01064C008A +S3061C01064D0089 +S3061C01064E0088 +S3061C01064F0087 +S3061C0106500086 +S3061C0106510085 +S3061C0106520084 +S3061C0106530083 +S3061C0106540082 +S3061C0106550081 +S3061C0106560080 +S3061C010657007F +S3061C010658007E +S3061C010659007D +S3061C01065A007C +S3061C01065B007B +S3061C01065C007A +S3061C01065D0079 +S3061C01065E0078 +S3061C01065F0077 +S3061C0106600076 +S3061C0106610075 +S3061C0106620074 +S3061C0106630073 +S3061C0106640072 +S3061C0106650071 +S3061C0106660070 +S3061C010667006F +S3061C010668006E +S3061C010669006D +S3061C01066A006C +S3061C01066B006B +S3061C01066C006A +S3061C01066D0069 +S3061C01066E0068 +S3061C01066F0067 +S3061C0106700066 +S3061C0106710065 +S3061C0106720064 +S3061C0106730063 +S3061C0106740062 +S3061C0106750061 +S3061C0106760060 +S3061C010677005F +S3061C010678005E +S3061C010679005D +S3061C01067A005C +S3061C01067B005B +S3061C01067C005A +S3061C01067D0059 +S3061C01067E0058 +S3061C01067F0057 +S3061C0106800056 +S3061C0106810055 +S3061C0106820054 +S3061C0106830053 +S3061C0106840052 +S3061C0106850051 +S3061C0106860050 +S3061C010687004F +S3061C010688004E +S3061C010689004D +S3061C01068A004C +S3061C01068B004B +S3061C01068C004A +S3061C01068D0049 +S3061C01068E0048 +S3061C01068F0047 +S3061C0106900046 +S3061C0106910045 +S3061C0106920044 +S3061C0106930043 +S3061C0106940042 +S3061C0106950041 +S3061C0106960040 +S3061C010697003F +S3061C010698003E +S3061C010699003D +S3061C01069A003C +S3061C01069B003B +S3061C01069C003A +S3061C01069D0039 +S3061C01069E0038 +S3061C01069F0037 +S3061C0106A00036 +S3061C0106A10035 +S3061C0106A20034 +S3061C0106A30033 +S3061C0106A40032 +S3061C0106A50031 +S3061C0106A60030 +S3061C0106A7002F +S3061C0106A8002E +S3061C0106A9002D +S3061C0106AA002C +S3061C0106AB002B +S3061C0106AC002A +S3061C0106AD0029 +S3061C0106AE0028 +S3061C0106AF0027 +S3061C0106B00026 +S3061C0106B10025 +S3061C0106B20024 +S3061C0106B30023 +S3061C0106B40022 +S3061C0106B50021 +S3061C0106B60020 +S3061C0106B7001F +S3061C0106B8001E +S3061C0106B9001D +S3061C0106BA001C +S3061C0106BB001B +S3061C0106BC001A +S3061C0106BD0019 +S3061C0106BE0018 +S3061C0106BF0017 +S3061C0106C00016 +S3061C0106C10015 +S3061C0106C20014 +S3061C0106C30013 +S3061C0106C40012 +S3061C0106C50011 +S3061C0106C60010 +S3061C0106C7000F +S3061C0106C8000E +S3061C0106C9000D +S3061C0106CA000C +S3061C0106CB000B +S3061C0106CC000A +S3061C0106CD0009 +S3061C0106CE0008 +S3061C0106CF0007 +S3061C0106D00006 +S3061C0106D10005 +S3061C0106D20004 +S3061C0106D30003 +S3061C0106D40002 +S3061C0106D50001 +S3061C0106D60000 +S3061C0106D700FF +S3061C0106D800FE +S3061C0106D900FD +S3061C0106DA00FC +S3061C0106DB00FB +S3061C0106DC00FA +S3061C0106DD00F9 +S3061C0106DE00F8 +S3061C0106DF00F7 +S3061C0106E000F6 +S3061C0106E100F5 +S3061C0106E200F4 +S3061C0106E300F3 +S3061C0106E400F2 +S3061C0106E500F1 +S3061C0106E600F0 +S3061C0106E700EF +S3061C0106E800EE +S3061C0106E900ED +S3061C0106EA00EC +S3061C0106EB00EB +S3061C0106EC00EA +S3061C0106ED00E9 +S3061C0106EE00E8 +S3061C0106EF00E7 +S3061C0106F000E6 +S3061C0106F100E5 +S3061C0106F200E4 +S3061C0106F300E3 +S3061C0106F400E2 +S3061C0106F500E1 +S3061C0106F600E0 +S3061C0106F700DF +S3061C0106F800DE +S3061C0106F900DD +S3061C0106FA00DC +S3061C0106FB00DB +S3061C0106FC00DA +S3061C0106FD00D9 +S3061C0106FE00D8 +S3061C0106FF00D7 +S3061C01070000D5 +S3061C01070100D4 +S3061C01070200D3 +S3061C01070300D2 +S3061C01070400D1 +S3061C01070500D0 +S3061C01070600CF +S3061C01070700CE +S3061C01070800CD +S3061C01070900CC +S3061C01070A00CB +S3061C01070B00CA +S3061C01070C00C9 +S3061C01070D00C8 +S3061C01070E00C7 +S3061C01070F00C6 +S3061C01071000C5 +S3061C01071100C4 +S3061C01071200C3 +S3061C01071300C2 +S3061C01071400C1 +S3061C01071500C0 +S3061C01071600BF +S3061C01071700BE +S3061C01071800BD +S3061C01071900BC +S3061C01071A00BB +S3061C01071B00BA +S3061C01071C00B9 +S3061C01071D00B8 +S3061C01071E00B7 +S3061C01071F00B6 +S3061C01072000B5 +S3061C01072100B4 +S3061C01072200B3 +S3061C01072300B2 +S3061C01072400B1 +S3061C01072500B0 +S3061C01072600AF +S3061C01072700AE +S3061C01072800AD +S3061C01072900AC +S3061C01072A00AB +S3061C01072B00AA +S3061C01072C00A9 +S3061C01072D00A8 +S3061C01072E00A7 +S3061C01072F00A6 +S3061C01073000A5 +S3061C01073100A4 +S3061C01073200A3 +S3061C01073300A2 +S3061C01073400A1 +S3061C01073500A0 +S3061C010736009F +S3061C010737009E +S3061C010738009D +S3061C010739009C +S3061C01073A009B +S3061C01073B009A +S3061C01073C0099 +S3061C01073D0098 +S3061C01073E0097 +S3061C01073F0096 +S3061C0107400095 +S3061C0107410094 +S3061C0107420093 +S3061C0107430092 +S3061C0107440091 +S3061C0107450090 +S3061C010746008F +S3061C010747008E +S3061C010748008D +S3061C010749008C +S3061C01074A008B +S3061C01074B008A +S3061C01074C0089 +S3061C01074D0088 +S3061C01074E0087 +S3061C01074F0086 +S3061C0107500085 +S3061C0107510084 +S3061C0107520083 +S3061C0107530082 +S3061C0107540081 +S3061C0107550080 +S3061C010756007F +S3061C010757007E +S3061C010758007D +S3061C010759007C +S3061C01075A007B +S3061C01075B007A +S3061C01075C0079 +S3061C01075D0078 +S3061C01075E0077 +S3061C01075F0076 +S3061C0107600075 +S3061C0107610074 +S3061C0107620073 +S3061C0107630072 +S3061C0107640071 +S3061C0107650070 +S3061C010766006F +S3061C010767006E +S3061C010768006D +S3061C010769006C +S3061C01076A006B +S3061C01076B006A +S3061C01076C0069 +S3061C01076D0068 +S3061C01076E0067 +S3061C01076F0066 +S3061C0107700065 +S3061C0107710064 +S3061C0107720063 +S3061C0107730062 +S3061C0107740061 +S3061C0107750060 +S3061C010776005F +S3061C010777005E +S3061C010778005D +S3061C010779005C +S3061C01077A005B +S3061C01077B005A +S3061C01077C0059 +S3061C01077D0058 +S3061C01077E0057 +S3061C01077F0056 +S3061C0107800055 +S3061C0107810054 +S3061C0107820053 +S3061C0107830052 +S3061C0107840051 +S3061C0107850050 +S3061C010786004F +S3061C010787004E +S3061C010788004D +S3061C010789004C +S3061C01078A004B +S3061C01078B004A +S3061C01078C0049 +S3061C01078D0048 +S3061C01078E0047 +S3061C01078F0046 +S3061C0107900045 +S3061C0107910044 +S3061C0107920043 +S3061C0107930042 +S3061C0107940041 +S3061C0107950040 +S3061C010796003F +S3061C010797003E +S3061C010798003D +S3061C010799003C +S3061C01079A003B +S3061C01079B003A +S3061C01079C0039 +S3061C01079D0038 +S3061C01079E0037 +S3061C01079F0036 +S3061C0107A00035 +S3061C0107A10034 +S3061C0107A20033 +S3061C0107A30032 +S3061C0107A40031 +S3061C0107A50030 +S3061C0107A6002F +S3061C0107A7002E +S3061C0107A8002D +S3061C0107A9002C +S3061C0107AA002B +S3061C0107AB002A +S3061C0107AC0029 +S3061C0107AD0028 +S3061C0107AE0027 +S3061C0107AF0026 +S3061C0107B00025 +S3061C0107B10024 +S3061C0107B20023 +S3061C0107B30022 +S3061C0107B40021 +S3061C0107B50020 +S3061C0107B6001F +S3061C0107B7001E +S3061C0107B8001D +S3061C0107B9001C +S3061C0107BA001B +S3061C0107BB001A +S3061C0107BC0019 +S3061C0107BD0018 +S3061C0107BE0017 +S3061C0107BF0016 +S3061C0107C00015 +S3061C0107C10014 +S3061C0107C20013 +S3061C0107C30012 +S3061C0107C40011 +S3061C0107C50010 +S3061C0107C6000F +S3061C0107C7000E +S3061C0107C8000D +S3061C0107C9000C +S3061C0107CA000B +S3061C0107CB000A +S3061C0107CC0009 +S3061C0107CD0008 +S3061C0107CE0007 +S3061C0107CF0006 +S3061C0107D00005 +S3061C0107D10004 +S3061C0107D20003 +S3061C0107D30002 +S3061C0107D40001 +S3061C0107D50000 +S3061C0107D600FF +S3061C0107D700FE +S3061C0107D800FD +S3061C0107D900FC +S3061C0107DA00FB +S3061C0107DB00FA +S3061C0107DC00F9 +S3061C0107DD00F8 +S3061C0107DE00F7 +S3061C0107DF00F6 +S3061C0107E000F5 +S3061C0107E100F4 +S3061C0107E200F3 +S3061C0107E300F2 +S3061C0107E400F1 +S3061C0107E500F0 +S3061C0107E600EF +S3061C0107E700EE +S3061C0107E800ED +S3061C0107E900EC +S3061C0107EA00EB +S3061C0107EB00EA +S3061C0107EC00E9 +S3061C0107ED00E8 +S3061C0107EE00E7 +S3061C0107EF00E6 +S3061C0107F000E5 +S3061C0107F100E4 +S3061C0107F200E3 +S3061C0107F300E2 +S3061C0107F400E1 +S3061C0107F500E0 +S3061C0107F600DF +S3061C0107F700DE +S3061C0107F800DD +S3061C0107F900DC +S3061C0107FA00DB +S3061C0107FB00DA +S3061C0107FC00D9 +S3061C0107FD00D8 +S3061C0107FE00D7 +S3061C0107FF00D6 +S3061C01080000D4 +S3061C01080100D3 +S3061C01080200D2 +S3061C01080300D1 +S3061C01080400D0 +S3061C01080500CF +S3061C01080600CE +S3061C01080700CD +S3061C01080800CC +S3061C01080900CB +S3061C01080A00CA +S3061C01080B00C9 +S3061C01080C00C8 +S3061C01080D00C7 +S3061C01080E00C6 +S3061C01080F00C5 +S3061C01081000C4 +S3061C01081100C3 +S3061C01081200C2 +S3061C01081300C1 +S3061C01081400C0 +S3061C01081500BF +S3061C01081600BE +S3061C01081700BD +S3061C01081800BC +S3061C01081900BB +S3061C01081A00BA +S3061C01081B00B9 +S3061C01081C00B8 +S3061C01081D00B7 +S3061C01081E00B6 +S3061C01081F00B5 +S3061C01082000B4 +S3061C01082100B3 +S3061C01082200B2 +S3061C01082300B1 +S3061C01082400B0 +S3061C01082500AF +S3061C01082600AE +S3061C01082700AD +S3061C01082800AC +S3061C01082900AB +S3061C01082A00AA +S3061C01082B00A9 +S3061C01082C00A8 +S3061C01082D00A7 +S3061C01082E00A6 +S3061C01082F00A5 +S3061C01083000A4 +S3061C01083100A3 +S3061C01083200A2 +S3061C01083300A1 +S3061C01083400A0 +S3061C010835009F +S3061C010836009E +S3061C010837009D +S3061C010838009C +S3061C010839009B +S3061C01083A009A +S3061C01083B0099 +S3061C01083C0098 +S3061C01083D0097 +S3061C01083E0096 +S3061C01083F0095 +S3061C0108400094 +S3061C0108410093 +S3061C0108420092 +S3061C0108430091 +S3061C0108440090 +S3061C010845008F +S3061C010846008E +S3061C010847008D +S3061C010848008C +S3061C010849008B +S3061C01084A008A +S3061C01084B0089 +S3061C01084C0088 +S3061C01084D0087 +S3061C01084E0086 +S3061C01084F0085 +S3061C0108500084 +S3061C0108510083 +S3061C0108520082 +S3061C0108530081 +S3061C0108540080 +S3061C010855007F +S3061C010856007E +S3061C010857007D +S3061C010858007C +S3061C010859007B +S3061C01085A007A +S3061C01085B0079 +S3061C01085C0078 +S3061C01085D0077 +S3061C01085E0076 +S3061C01085F0075 +S3061C0108600074 +S3061C0108610073 +S3061C0108620072 +S3061C0108630071 +S3061C0108640070 +S3061C010865006F +S3061C010866006E +S3061C010867006D +S3061C010868006C +S3061C010869006B +S3061C01086A006A +S3061C01086B0069 +S3061C01086C0068 +S3061C01086D0067 +S3061C01086E0066 +S3061C01086F0065 +S3061C0108700064 +S3061C0108710063 +S3061C0108720062 +S3061C0108730061 +S3061C0108740060 +S3061C010875005F +S3061C010876005E +S3061C010877005D +S3061C010878005C +S3061C010879005B +S3061C01087A005A +S3061C01087B0059 +S3061C01087C0058 +S3061C01087D0057 +S3061C01087E0056 +S3061C01087F0055 +S3061C0108800054 +S3061C0108810053 +S3061C0108820052 +S3061C0108830051 +S3061C0108840050 +S3061C010885004F +S3061C010886004E +S3061C010887004D +S3061C010888004C +S3061C010889004B +S3061C01088A004A +S3061C01088B0049 +S3061C01088C0048 +S3061C01088D0047 +S3061C01088E0046 +S3061C01088F0045 +S3061C0108900044 +S3061C0108910043 +S3061C0108920042 +S3061C0108930041 +S3061C0108940040 +S3061C010895003F +S3061C010896003E +S3061C010897003D +S3061C010898003C +S3061C010899003B +S3061C01089A003A +S3061C01089B0039 +S3061C01089C0038 +S3061C01089D0037 +S3061C01089E0036 +S3061C01089F0035 +S3061C0108A00034 +S3061C0108A10033 +S3061C0108A20032 +S3061C0108A30031 +S3061C0108A40030 +S3061C0108A5002F +S3061C0108A6002E +S3061C0108A7002D +S3061C0108A8002C +S3061C0108A9002B +S3061C0108AA002A +S3061C0108AB0029 +S3061C0108AC0028 +S3061C0108AD0027 +S3061C0108AE0026 +S3061C0108AF0025 +S3061C0108B00024 +S3061C0108B10023 +S3061C0108B20022 +S3061C0108B30021 +S3061C0108B40020 +S3061C0108B5001F +S3061C0108B6001E +S3061C0108B7001D +S3061C0108B8001C +S3061C0108B9001B +S3061C0108BA001A +S3061C0108BB0019 +S3061C0108BC0018 +S3061C0108BD0017 +S3061C0108BE0016 +S3061C0108BF0015 +S3061C0108C00014 +S3061C0108C10013 +S3061C0108C20012 +S3061C0108C30011 +S3061C0108C40010 +S3061C0108C5000F +S3061C0108C6000E +S3061C0108C7000D +S3061C0108C8000C +S3061C0108C9000B +S3061C0108CA000A +S3061C0108CB0009 +S3061C0108CC0008 +S3061C0108CD0007 +S3061C0108CE0006 +S3061C0108CF0005 +S3061C0108D00004 +S3061C0108D10003 +S3061C0108D20002 +S3061C0108D30001 +S3061C0108D40000 +S3061C0108D500FF +S3061C0108D600FE +S3061C0108D700FD +S3061C0108D800FC +S3061C0108D900FB +S3061C0108DA00FA +S3061C0108DB00F9 +S3061C0108DC00F8 +S3061C0108DD00F7 +S3061C0108DE00F6 +S3061C0108DF00F5 +S3061C0108E000F4 +S3061C0108E100F3 +S3061C0108E200F2 +S3061C0108E300F1 +S3061C0108E400F0 +S3061C0108E500EF +S3061C0108E600EE +S3061C0108E700ED +S3061C0108E800EC +S3061C0108E900EB +S3061C0108EA00EA +S3061C0108EB00E9 +S3061C0108EC00E8 +S3061C0108ED00E7 +S3061C0108EE00E6 +S3061C0108EF00E5 +S3061C0108F000E4 +S3061C0108F100E3 +S3061C0108F200E2 +S3061C0108F300E1 +S3061C0108F400E0 +S3061C0108F500DF +S3061C0108F600DE +S3061C0108F700DD +S3061C0108F800DC +S3061C0108F900DB +S3061C0108FA00DA +S3061C0108FB00D9 +S3061C0108FC00D8 +S3061C0108FD00D7 +S3061C0108FE00D6 +S3061C0108FF00D5 +S3061C01090000D3 +S3061C01090100D2 +S3061C01090200D1 +S3061C01090300D0 +S3061C01090400CF +S3061C01090500CE +S3061C01090600CD +S3061C01090700CC +S3061C01090800CB +S3061C01090900CA +S3061C01090A00C9 +S3061C01090B00C8 +S3061C01090C00C7 +S3061C01090D00C6 +S3061C01090E00C5 +S3061C01090F00C4 +S3061C01091000C3 +S3061C01091100C2 +S3061C01091200C1 +S3061C01091300C0 +S3061C01091400BF +S3061C01091500BE +S3061C01091600BD +S3061C01091700BC +S3061C01091800BB +S3061C01091900BA +S3061C01091A00B9 +S3061C01091B00B8 +S3061C01091C00B7 +S3061C01091D00B6 +S3061C01091E00B5 +S3061C01091F00B4 +S3061C01092000B3 +S3061C01092100B2 +S3061C01092200B1 +S3061C01092300B0 +S3061C01092400AF +S3061C01092500AE +S3061C01092600AD +S3061C01092700AC +S3061C01092800AB +S3061C01092900AA +S3061C01092A00A9 +S3061C01092B00A8 +S3061C01092C00A7 +S3061C01092D00A6 +S3061C01092E00A5 +S3061C01092F00A4 +S3061C01093000A3 +S3061C01093100A2 +S3061C01093200A1 +S3061C01093300A0 +S3061C010934009F +S3061C010935009E +S3061C010936009D +S3061C010937009C +S3061C010938009B +S3061C010939009A +S3061C01093A0099 +S3061C01093B0098 +S3061C01093C0097 +S3061C01093D0096 +S3061C01093E0095 +S3061C01093F0094 +S3061C0109400093 +S3061C0109410092 +S3061C0109420091 +S3061C0109430090 +S3061C010944008F +S3061C010945008E +S3061C010946008D +S3061C010947008C +S3061C010948008B +S3061C010949008A +S3061C01094A0089 +S3061C01094B0088 +S3061C01094C0087 +S3061C01094D0086 +S3061C01094E0085 +S3061C01094F0084 +S3061C0109500083 +S3061C0109510082 +S3061C0109520081 +S3061C0109530080 +S3061C010954007F +S3061C010955007E +S3061C010956007D +S3061C010957007C +S3061C010958007B +S3061C010959007A +S3061C01095A0079 +S3061C01095B0078 +S3061C01095C0077 +S3061C01095D0076 +S3061C01095E0075 +S3061C01095F0074 +S3061C0109600073 +S3061C0109610072 +S3061C0109620071 +S3061C0109630070 +S3061C010964006F +S3061C010965006E +S3061C010966006D +S3061C010967006C +S3061C010968006B +S3061C010969006A +S3061C01096A0069 +S3061C01096B0068 +S3061C01096C0067 +S3061C01096D0066 +S3061C01096E0065 +S3061C01096F0064 +S3061C0109700063 +S3061C0109710062 +S3061C0109720061 +S3061C0109730060 +S3061C010974005F +S3061C010975005E +S3061C010976005D +S3061C010977005C +S3061C010978005B +S3061C010979005A +S3061C01097A0059 +S3061C01097B0058 +S3061C01097C0057 +S3061C01097D0056 +S3061C01097E0055 +S3061C01097F0054 +S3061C0109800053 +S3061C0109810052 +S3061C0109820051 +S3061C0109830050 +S3061C010984004F +S3061C010985004E +S3061C010986004D +S3061C010987004C +S3061C010988004B +S3061C010989004A +S3061C01098A0049 +S3061C01098B0048 +S3061C01098C0047 +S3061C01098D0046 +S3061C01098E0045 +S3061C01098F0044 +S3061C0109900043 +S3061C0109910042 +S3061C0109920041 +S3061C0109930040 +S3061C010994003F +S3061C010995003E +S3061C010996003D +S3061C010997003C +S3061C010998003B +S3061C010999003A +S3061C01099A0039 +S3061C01099B0038 +S3061C01099C0037 +S3061C01099D0036 +S3061C01099E0035 +S3061C01099F0034 +S3061C0109A00033 +S3061C0109A10032 +S3061C0109A20031 +S3061C0109A30030 +S3061C0109A4002F +S3061C0109A5002E +S3061C0109A6002D +S3061C0109A7002C +S3061C0109A8002B +S3061C0109A9002A +S3061C0109AA0029 +S3061C0109AB0028 +S3061C0109AC0027 +S3061C0109AD0026 +S3061C0109AE0025 +S3061C0109AF0024 +S3061C0109B00023 +S3061C0109B10022 +S3061C0109B20021 +S3061C0109B30020 +S3061C0109B4001F +S3061C0109B5001E +S3061C0109B6001D +S3061C0109B7001C +S3061C0109B8001B +S3061C0109B9001A +S3061C0109BA0019 +S3061C0109BB0018 +S3061C0109BC0017 +S3061C0109BD0016 +S3061C0109BE0015 +S3061C0109BF0014 +S3061C0109C00013 +S3061C0109C10012 +S3061C0109C20011 +S3061C0109C30010 +S3061C0109C4000F +S3061C0109C5000E +S3061C0109C6000D +S3061C0109C7000C +S3061C0109C8000B +S3061C0109C9000A +S3061C0109CA0009 +S3061C0109CB0008 +S3061C0109CC0007 +S3061C0109CD0006 +S3061C0109CE0005 +S3061C0109CF0004 +S3061C0109D00003 +S3061C0109D10002 +S3061C0109D20001 +S3061C0109D30000 +S3061C0109D400FF +S3061C0109D500FE +S3061C0109D600FD +S3061C0109D700FC +S3061C0109D800FB +S3061C0109D900FA +S3061C0109DA00F9 +S3061C0109DB00F8 +S3061C0109DC00F7 +S3061C0109DD00F6 +S3061C0109DE00F5 +S3061C0109DF00F4 +S3061C0109E000F3 +S3061C0109E100F2 +S3061C0109E200F1 +S3061C0109E300F0 +S3061C0109E400EF +S3061C0109E500EE +S3061C0109E600ED +S3061C0109E700EC +S3061C0109E800EB +S3061C0109E900EA +S3061C0109EA00E9 +S3061C0109EB00E8 +S3061C0109EC00E7 +S3061C0109ED00E6 +S3061C0109EE00E5 +S3061C0109EF00E4 +S3061C0109F000E3 +S3061C0109F100E2 +S3061C0109F200E1 +S3061C0109F300E0 +S3061C0109F400DF +S3061C0109F500DE +S3061C0109F600DD +S3061C0109F700DC +S3061C0109F800DB +S3061C0109F900DA +S3061C0109FA00D9 +S3061C0109FB00D8 +S3061C0109FC00D7 +S3061C0109FD00D6 +S3061C0109FE00D5 +S3061C0109FF00D4 +S3061C010A0000D2 +S3061C010A0100D1 +S3061C010A0200D0 +S3061C010A0300CF +S3061C010A0400CE +S3061C010A0500CD +S3061C010A0600CC +S3061C010A0700CB +S3061C010A0800CA +S3061C010A0900C9 +S3061C010A0A00C8 +S3061C010A0B00C7 +S3061C010A0C00C6 +S3061C010A0D00C5 +S3061C010A0E00C4 +S3061C010A0F00C3 +S3061C010A1000C2 +S3061C010A1100C1 +S3061C010A1200C0 +S3061C010A1300BF +S3061C010A1400BE +S3061C010A1500BD +S3061C010A1600BC +S3061C010A1700BB +S3061C010A1800BA +S3061C010A1900B9 +S3061C010A1A00B8 +S3061C010A1B00B7 +S3061C010A1C00B6 +S3061C010A1D00B5 +S3061C010A1E00B4 +S3061C010A1F00B3 +S3061C010A2000B2 +S3061C010A2100B1 +S3061C010A2200B0 +S3061C010A2300AF +S3061C010A2400AE +S3061C010A2500AD +S3061C010A2600AC +S3061C010A2700AB +S3061C010A2800AA +S3061C010A2900A9 +S3061C010A2A00A8 +S3061C010A2B00A7 +S3061C010A2C00A6 +S3061C010A2D00A5 +S3061C010A2E00A4 +S3061C010A2F00A3 +S3061C010A3000A2 +S3061C010A3100A1 +S3061C010A3200A0 +S3061C010A33009F +S3061C010A34009E +S3061C010A35009D +S3061C010A36009C +S3061C010A37009B +S3061C010A38009A +S3061C010A390099 +S3061C010A3A0098 +S3061C010A3B0097 +S3061C010A3C0096 +S3061C010A3D0095 +S3061C010A3E0094 +S3061C010A3F0093 +S3061C010A400092 +S3061C010A410091 +S3061C010A420090 +S3061C010A43008F +S3061C010A44008E +S3061C010A45008D +S3061C010A46008C +S3061C010A47008B +S3061C010A48008A +S3061C010A490089 +S3061C010A4A0088 +S3061C010A4B0087 +S3061C010A4C0086 +S3061C010A4D0085 +S3061C010A4E0084 +S3061C010A4F0083 +S3061C010A500082 +S3061C010A510081 +S3061C010A520080 +S3061C010A53007F +S3061C010A54007E +S3061C010A55007D +S3061C010A56007C +S3061C010A57007B +S3061C010A58007A +S3061C010A590079 +S3061C010A5A0078 +S3061C010A5B0077 +S3061C010A5C0076 +S3061C010A5D0075 +S3061C010A5E0074 +S3061C010A5F0073 +S3061C010A600072 +S3061C010A610071 +S3061C010A620070 +S3061C010A63006F +S3061C010A64006E +S3061C010A65006D +S3061C010A66006C +S3061C010A67006B +S3061C010A68006A +S3061C010A690069 +S3061C010A6A0068 +S3061C010A6B0067 +S3061C010A6C0066 +S3061C010A6D0065 +S3061C010A6E0064 +S3061C010A6F0063 +S3061C010A700062 +S3061C010A710061 +S3061C010A720060 +S3061C010A73005F +S3061C010A74005E +S3061C010A75005D +S3061C010A76005C +S3061C010A77005B +S3061C010A78005A +S3061C010A790059 +S3061C010A7A0058 +S3061C010A7B0057 +S3061C010A7C0056 +S3061C010A7D0055 +S3061C010A7E0054 +S3061C010A7F0053 +S3061C010A800052 +S3061C010A810051 +S3061C010A820050 +S3061C010A83004F +S3061C010A84004E +S3061C010A85004D +S3061C010A86004C +S3061C010A87004B +S3061C010A88004A +S3061C010A890049 +S3061C010A8A0048 +S3061C010A8B0047 +S3061C010A8C0046 +S3061C010A8D0045 +S3061C010A8E0044 +S3061C010A8F0043 +S3061C010A900042 +S3061C010A910041 +S3061C010A920040 +S3061C010A93003F +S3061C010A94003E +S3061C010A95003D +S3061C010A96003C +S3061C010A97003B +S3061C010A98003A +S3061C010A990039 +S3061C010A9A0038 +S3061C010A9B0037 +S3061C010A9C0036 +S3061C010A9D0035 +S3061C010A9E0034 +S3061C010A9F0033 +S3061C010AA00032 +S3061C010AA10031 +S3061C010AA20030 +S3061C010AA3002F +S3061C010AA4002E +S3061C010AA5002D +S3061C010AA6002C +S3061C010AA7002B +S3061C010AA8002A +S3061C010AA90029 +S3061C010AAA0028 +S3061C010AAB0027 +S3061C010AAC0026 +S3061C010AAD0025 +S3061C010AAE0024 +S3061C010AAF0023 +S3061C010AB00022 +S3061C010AB10021 +S3061C010AB20020 +S3061C010AB3001F +S3061C010AB4001E +S3061C010AB5001D +S3061C010AB6001C +S3061C010AB7001B +S3061C010AB8001A +S3061C010AB90019 +S3061C010ABA0018 +S3061C010ABB0017 +S3061C010ABC0016 +S3061C010ABD0015 +S3061C010ABE0014 +S3061C010ABF0013 +S3061C010AC00012 +S3061C010AC10011 +S3061C010AC20010 +S3061C010AC3000F +S3061C010AC4000E +S3061C010AC5000D +S3061C010AC6000C +S3061C010AC7000B +S3061C010AC8000A +S3061C010AC90009 +S3061C010ACA0008 +S3061C010ACB0007 +S3061C010ACC0006 +S3061C010ACD0005 +S3061C010ACE0004 +S3061C010ACF0003 +S3061C010AD00002 +S3061C010AD10001 +S3061C010AD20000 +S3061C010AD300FF +S3061C010AD400FE +S3061C010AD500FD +S3061C010AD600FC +S3061C010AD700FB +S3061C010AD800FA +S3061C010AD900F9 +S3061C010ADA00F8 +S3061C010ADB00F7 +S3061C010ADC00F6 +S3061C010ADD00F5 +S3061C010ADE00F4 +S3061C010ADF00F3 +S3061C010AE000F2 +S3061C010AE100F1 +S3061C010AE200F0 +S3061C010AE300EF +S3061C010AE400EE +S3061C010AE500ED +S3061C010AE600EC +S3061C010AE700EB +S3061C010AE800EA +S3061C010AE900E9 +S3061C010AEA00E8 +S3061C010AEB00E7 +S3061C010AEC00E6 +S3061C010AED00E5 +S3061C010AEE00E4 +S3061C010AEF00E3 +S3061C010AF000E2 +S3061C010AF100E1 +S3061C010AF200E0 +S3061C010AF300DF +S3061C010AF400DE +S3061C010AF500DD +S3061C010AF600DC +S3061C010AF700DB +S3061C010AF800DA +S3061C010AF900D9 +S3061C010AFA00D8 +S3061C010AFB00D7 +S3061C010AFC00D6 +S3061C010AFD00D5 +S3061C010AFE00D4 +S3061C010AFF00D3 +S3061C010B0000D1 +S3061C010B0100D0 +S3061C010B0200CF +S3061C010B0300CE +S3061C010B0400CD +S3061C010B0500CC +S3061C010B0600CB +S3061C010B0700CA +S3061C010B0800C9 +S3061C010B0900C8 +S3061C010B0A00C7 +S3061C010B0B00C6 +S3061C010B0C00C5 +S3061C010B0D00C4 +S3061C010B0E00C3 +S3061C010B0F00C2 +S3061C010B1000C1 +S3061C010B1100C0 +S3061C010B1200BF +S3061C010B1300BE +S3061C010B1400BD +S3061C010B1500BC +S3061C010B1600BB +S3061C010B1700BA +S3061C010B1800B9 +S3061C010B1900B8 +S3061C010B1A00B7 +S3061C010B1B00B6 +S3061C010B1C00B5 +S3061C010B1D00B4 +S3061C010B1E00B3 +S3061C010B1F00B2 +S3061C010B2000B1 +S3061C010B2100B0 +S3061C010B2200AF +S3061C010B2300AE +S3061C010B2400AD +S3061C010B2500AC +S3061C010B2600AB +S3061C010B2700AA +S3061C010B2800A9 +S3061C010B2900A8 +S3061C010B2A00A7 +S3061C010B2B00A6 +S3061C010B2C00A5 +S3061C010B2D00A4 +S3061C010B2E00A3 +S3061C010B2F00A2 +S3061C010B3000A1 +S3061C010B3100A0 +S3061C010B32009F +S3061C010B33009E +S3061C010B34009D +S3061C010B35009C +S3061C010B36009B +S3061C010B37009A +S3061C010B380099 +S3061C010B390098 +S3061C010B3A0097 +S3061C010B3B0096 +S3061C010B3C0095 +S3061C010B3D0094 +S3061C010B3E0093 +S3061C010B3F0092 +S3061C010B400091 +S3061C010B410090 +S3061C010B42008F +S3061C010B43008E +S3061C010B44008D +S3061C010B45008C +S3061C010B46008B +S3061C010B47008A +S3061C010B480089 +S3061C010B490088 +S3061C010B4A0087 +S3061C010B4B0086 +S3061C010B4C0085 +S3061C010B4D0084 +S3061C010B4E0083 +S3061C010B4F0082 +S3061C010B500081 +S3061C010B510080 +S3061C010B52007F +S3061C010B53007E +S3061C010B54007D +S3061C010B55007C +S3061C010B56007B +S3061C010B57007A +S3061C010B580079 +S3061C010B590078 +S3061C010B5A0077 +S3061C010B5B0076 +S3061C010B5C0075 +S3061C010B5D0074 +S3061C010B5E0073 +S3061C010B5F0072 +S3061C010B600071 +S3061C010B610070 +S3061C010B62006F +S3061C010B63006E +S3061C010B64006D +S3061C010B65006C +S3061C010B66006B +S3061C010B67006A +S3061C010B680069 +S3061C010B690068 +S3061C010B6A0067 +S3061C010B6B0066 +S3061C010B6C0065 +S3061C010B6D0064 +S3061C010B6E0063 +S3061C010B6F0062 +S3061C010B700061 +S3061C010B710060 +S3061C010B72005F +S3061C010B73005E +S3061C010B74005D +S3061C010B75005C +S3061C010B76005B +S3061C010B77005A +S3061C010B780059 +S3061C010B790058 +S3061C010B7A0057 +S3061C010B7B0056 +S3061C010B7C0055 +S3061C010B7D0054 +S3061C010B7E0053 +S3061C010B7F0052 +S3061C010B800051 +S3061C010B810050 +S3061C010B82004F +S3061C010B83004E +S3061C010B84004D +S3061C010B85004C +S3061C010B86004B +S3061C010B87004A +S3061C010B880049 +S3061C010B890048 +S3061C010B8A0047 +S3061C010B8B0046 +S3061C010B8C0045 +S3061C010B8D0044 +S3061C010B8E0043 +S3061C010B8F0042 +S3061C010B900041 +S3061C010B910040 +S3061C010B92003F +S3061C010B93003E +S3061C010B94003D +S3061C010B95003C +S3061C010B96003B +S3061C010B97003A +S3061C010B980039 +S3061C010B990038 +S3061C010B9A0037 +S3061C010B9B0036 +S3061C010B9C0035 +S3061C010B9D0034 +S3061C010B9E0033 +S3061C010B9F0032 +S3061C010BA00031 +S3061C010BA10030 +S3061C010BA2002F +S3061C010BA3002E +S3061C010BA4002D +S3061C010BA5002C +S3061C010BA6002B +S3061C010BA7002A +S3061C010BA80029 +S3061C010BA90028 +S3061C010BAA0027 +S3061C010BAB0026 +S3061C010BAC0025 +S3061C010BAD0024 +S3061C010BAE0023 +S3061C010BAF0022 +S3061C010BB00021 +S3061C010BB10020 +S3061C010BB2001F +S3061C010BB3001E +S3061C010BB4001D +S3061C010BB5001C +S3061C010BB6001B +S3061C010BB7001A +S3061C010BB80019 +S3061C010BB90018 +S3061C010BBA0017 +S3061C010BBB0016 +S3061C010BBC0015 +S3061C010BBD0014 +S3061C010BBE0013 +S3061C010BBF0012 +S3061C010BC00011 +S3061C010BC10010 +S3061C010BC2000F +S3061C010BC3000E +S3061C010BC4000D +S3061C010BC5000C +S3061C010BC6000B +S3061C010BC7000A +S3061C010BC80009 +S3061C010BC90008 +S3061C010BCA0007 +S3061C010BCB0006 +S3061C010BCC0005 +S3061C010BCD0004 +S3061C010BCE0003 +S3061C010BCF0002 +S3061C010BD00001 +S3061C010BD10000 +S3061C010BD200FF +S3061C010BD300FE +S3061C010BD400FD +S3061C010BD500FC +S3061C010BD600FB +S3061C010BD700FA +S3061C010BD800F9 +S3061C010BD900F8 +S3061C010BDA00F7 +S3061C010BDB00F6 +S3061C010BDC00F5 +S3061C010BDD00F4 +S3061C010BDE00F3 +S3061C010BDF00F2 +S3061C010BE000F1 +S3061C010BE100F0 +S3061C010BE200EF +S3061C010BE300EE +S3061C010BE400ED +S3061C010BE500EC +S3061C010BE600EB +S3061C010BE700EA +S3061C010BE800E9 +S3061C010BE900E8 +S3061C010BEA00E7 +S3061C010BEB00E6 +S3061C010BEC00E5 +S3061C010BED00E4 +S3061C010BEE00E3 +S3061C010BEF00E2 +S3061C010BF000E1 +S3061C010BF100E0 +S3061C010BF200DF +S3061C010BF300DE +S3061C010BF400DD +S3061C010BF500DC +S3061C010BF600DB +S3061C010BF700DA +S3061C010BF800D9 +S3061C010BF900D8 +S3061C010BFA00D7 +S3061C010BFB00D6 +S3061C010BFC00D5 +S3061C010BFD00D4 +S3061C010BFE00D3 +S3061C010BFF00D2 +S3061C010C0000D0 +S3061C010C0100CF +S3061C010C0200CE +S3061C010C0300CD +S3061C010C0400CC +S3061C010C0500CB +S3061C010C0600CA +S3061C010C0700C9 +S3061C010C0800C8 +S3061C010C0900C7 +S3061C010C0A00C6 +S3061C010C0B00C5 +S3061C010C0C00C4 +S3061C010C0D00C3 +S3061C010C0E00C2 +S3061C010C0F00C1 +S3061C010C1000C0 +S3061C010C1100BF +S3061C010C1200BE +S3061C010C1300BD +S3061C010C1400BC +S3061C010C1500BB +S3061C010C1600BA +S3061C010C1700B9 +S3061C010C1800B8 +S3061C010C1900B7 +S3061C010C1A00B6 +S3061C010C1B00B5 +S3061C010C1C00B4 +S3061C010C1D00B3 +S3061C010C1E00B2 +S3061C010C1F00B1 +S3061C010C2000B0 +S3061C010C2100AF +S3061C010C2200AE +S3061C010C2300AD +S3061C010C2400AC +S3061C010C2500AB +S3061C010C2600AA +S3061C010C2700A9 +S3061C010C2800A8 +S3061C010C2900A7 +S3061C010C2A00A6 +S3061C010C2B00A5 +S3061C010C2C00A4 +S3061C010C2D00A3 +S3061C010C2E00A2 +S3061C010C2F00A1 +S3061C010C3000A0 +S3061C010C31009F +S3061C010C32009E +S3061C010C33009D +S3061C010C34009C +S3061C010C35009B +S3061C010C36009A +S3061C010C370099 +S3061C010C380098 +S3061C010C390097 +S3061C010C3A0096 +S3061C010C3B0095 +S3061C010C3C0094 +S3061C010C3D0093 +S3061C010C3E0092 +S3061C010C3F0091 +S3061C010C400090 +S3061C010C41008F +S3061C010C42008E +S3061C010C43008D +S3061C010C44008C +S3061C010C45008B +S3061C010C46008A +S3061C010C470089 +S3061C010C480088 +S3061C010C490087 +S3061C010C4A0086 +S3061C010C4B0085 +S3061C010C4C0084 +S3061C010C4D0083 +S3061C010C4E0082 +S3061C010C4F0081 +S3061C010C500080 +S3061C010C51007F +S3061C010C52007E +S3061C010C53007D +S3061C010C54007C +S3061C010C55007B +S3061C010C56007A +S3061C010C570079 +S3061C010C580078 +S3061C010C590077 +S3061C010C5A0076 +S3061C010C5B0075 +S3061C010C5C0074 +S3061C010C5D0073 +S3061C010C5E0072 +S3061C010C5F0071 +S3061C010C600070 +S3061C010C61006F +S3061C010C62006E +S3061C010C63006D +S3061C010C64006C +S3061C010C65006B +S3061C010C66006A +S3061C010C670069 +S3061C010C680068 +S3061C010C690067 +S3061C010C6A0066 +S3061C010C6B0065 +S3061C010C6C0064 +S3061C010C6D0063 +S3061C010C6E0062 +S3061C010C6F0061 +S3061C010C700060 +S3061C010C71005F +S3061C010C72005E +S3061C010C73005D +S3061C010C74005C +S3061C010C75005B +S3061C010C76005A +S3061C010C770059 +S3061C010C780058 +S3061C010C790057 +S3061C010C7A0056 +S3061C010C7B0055 +S3061C010C7C0054 +S3061C010C7D0053 +S3061C010C7E0052 +S3061C010C7F0051 +S3061C010C800050 +S3061C010C81004F +S3061C010C82004E +S3061C010C83004D +S3061C010C84004C +S3061C010C85004B +S3061C010C86004A +S3061C010C870049 +S3061C010C880048 +S3061C010C890047 +S3061C010C8A0046 +S3061C010C8B0045 +S3061C010C8C0044 +S3061C010C8D0043 +S3061C010C8E0042 +S3061C010C8F0041 +S3061C010C900040 +S3061C010C91003F +S3061C010C92003E +S3061C010C93003D +S3061C010C94003C +S3061C010C95003B +S3061C010C96003A +S3061C010C970039 +S3061C010C980038 +S3061C010C990037 +S3061C010C9A0036 +S3061C010C9B0035 +S3061C010C9C0034 +S3061C010C9D0033 +S3061C010C9E0032 +S3061C010C9F0031 +S3061C010CA00030 +S3061C010CA1002F +S3061C010CA2002E +S3061C010CA3002D +S3061C010CA4002C +S3061C010CA5002B +S3061C010CA6002A +S3061C010CA70029 +S3061C010CA80028 +S3061C010CA90027 +S3061C010CAA0026 +S3061C010CAB0025 +S3061C010CAC0024 +S3061C010CAD0023 +S3061C010CAE0022 +S3061C010CAF0021 +S3061C010CB00020 +S3061C010CB1001F +S3061C010CB2001E +S3061C010CB3001D +S3061C010CB4001C +S3061C010CB5001B +S3061C010CB6001A +S3061C010CB70019 +S3061C010CB80018 +S3061C010CB90017 +S3061C010CBA0016 +S3061C010CBB0015 +S3061C010CBC0014 +S3061C010CBD0013 +S3061C010CBE0012 +S3061C010CBF0011 +S3061C010CC00010 +S3061C010CC1000F +S3061C010CC2000E +S3061C010CC3000D +S3061C010CC4000C +S3061C010CC5000B +S3061C010CC6000A +S3061C010CC70009 +S3061C010CC80008 +S3061C010CC90007 +S3061C010CCA0006 +S3061C010CCB0005 +S3061C010CCC0004 +S3061C010CCD0003 +S3061C010CCE0002 +S3061C010CCF0001 +S3061C010CD00000 +S3061C010CD100FF +S3061C010CD200FE +S3061C010CD300FD +S3061C010CD400FC +S3061C010CD500FB +S3061C010CD600FA +S3061C010CD700F9 +S3061C010CD800F8 +S3061C010CD900F7 +S3061C010CDA00F6 +S3061C010CDB00F5 +S3061C010CDC00F4 +S3061C010CDD00F3 +S3061C010CDE00F2 +S3061C010CDF00F1 +S3061C010CE000F0 +S3061C010CE100EF +S3061C010CE200EE +S3061C010CE300ED +S3061C010CE400EC +S3061C010CE500EB +S3061C010CE600EA +S3061C010CE700E9 +S3061C010CE800E8 +S3061C010CE900E7 +S3061C010CEA00E6 +S3061C010CEB00E5 +S3061C010CEC00E4 +S3061C010CED00E3 +S3061C010CEE00E2 +S3061C010CEF00E1 +S3061C010CF000E0 +S3061C010CF100DF +S3061C010CF200DE +S3061C010CF300DD +S3061C010CF400DC +S3061C010CF500DB +S3061C010CF600DA +S3061C010CF700D9 +S3061C010CF800D8 +S3061C010CF900D7 +S3061C010CFA00D6 +S3061C010CFB00D5 +S3061C010CFC00D4 +S3061C010CFD00D3 +S3061C010CFE00D2 +S3061C010CFF00D1 +S3061C010D0000CF +S3061C010D0100CE +S3061C010D0200CD +S3061C010D0300CC +S3061C010D0400CB +S3061C010D0500CA +S3061C010D0600C9 +S3061C010D0700C8 +S3061C010D0800C7 +S3061C010D0900C6 +S3061C010D0A00C5 +S3061C010D0B00C4 +S3061C010D0C00C3 +S3061C010D0D00C2 +S3061C010D0E00C1 +S3061C010D0F00C0 +S3061C010D1000BF +S3061C010D1100BE +S3061C010D1200BD +S3061C010D1300BC +S3061C010D1400BB +S3061C010D1500BA +S3061C010D1600B9 +S3061C010D1700B8 +S3061C010D1800B7 +S3061C010D1900B6 +S3061C010D1A00B5 +S3061C010D1B00B4 +S3061C010D1C00B3 +S3061C010D1D00B2 +S3061C010D1E00B1 +S3061C010D1F00B0 +S3061C010D2000AF +S3061C010D2100AE +S3061C010D2200AD +S3061C010D2300AC +S3061C010D2400AB +S3061C010D2500AA +S3061C010D2600A9 +S3061C010D2700A8 +S3061C010D2800A7 +S3061C010D2900A6 +S3061C010D2A00A5 +S3061C010D2B00A4 +S3061C010D2C00A3 +S3061C010D2D00A2 +S3061C010D2E00A1 +S3061C010D2F00A0 +S3061C010D30009F +S3061C010D31009E +S3061C010D32009D +S3061C010D33009C +S3061C010D34009B +S3061C010D35009A +S3061C010D360099 +S3061C010D370098 +S3061C010D380097 +S3061C010D390096 +S3061C010D3A0095 +S3061C010D3B0094 +S3061C010D3C0093 +S3061C010D3D0092 +S3061C010D3E0091 +S3061C010D3F0090 +S3061C010D40008F +S3061C010D41008E +S3061C010D42008D +S3061C010D43008C +S3061C010D44008B +S3061C010D45008A +S3061C010D460089 +S3061C010D470088 +S3061C010D480087 +S3061C010D490086 +S3061C010D4A0085 +S3061C010D4B0084 +S3061C010D4C0083 +S3061C010D4D0082 +S3061C010D4E0081 +S3061C010D4F0080 +S3061C010D50007F +S3061C010D51007E +S3061C010D52007D +S3061C010D53007C +S3061C010D54007B +S3061C010D55007A +S3061C010D560079 +S3061C010D570078 +S3061C010D580077 +S3061C010D590076 +S3061C010D5A0075 +S3061C010D5B0074 +S3061C010D5C0073 +S3061C010D5D0072 +S3061C010D5E0071 +S3061C010D5F0070 +S3061C010D60006F +S3061C010D61006E +S3061C010D62006D +S3061C010D63006C +S3061C010D64006B +S3061C010D65006A +S3061C010D660069 +S3061C010D670068 +S3061C010D680067 +S3061C010D690066 +S3061C010D6A0065 +S3061C010D6B0064 +S3061C010D6C0063 +S3061C010D6D0062 +S3061C010D6E0061 +S3061C010D6F0060 +S3061C010D70005F +S3061C010D71005E +S3061C010D72005D +S3061C010D73005C +S3061C010D74005B +S3061C010D75005A +S3061C010D760059 +S3061C010D770058 +S3061C010D780057 +S3061C010D790056 +S3061C010D7A0055 +S3061C010D7B0054 +S3061C010D7C0053 +S3061C010D7D0052 +S3061C010D7E0051 +S3061C010D7F0050 +S3061C010D80004F +S3061C010D81004E +S3061C010D82004D +S3061C010D83004C +S3061C010D84004B +S3061C010D85004A +S3061C010D860049 +S3061C010D870048 +S3061C010D880047 +S3061C010D890046 +S3061C010D8A0045 +S3061C010D8B0044 +S3061C010D8C0043 +S3061C010D8D0042 +S3061C010D8E0041 +S3061C010D8F0040 +S3061C010D90003F +S3061C010D91003E +S3061C010D92003D +S3061C010D93003C +S3061C010D94003B +S3061C010D95003A +S3061C010D960039 +S3061C010D970038 +S3061C010D980037 +S3061C010D990036 +S3061C010D9A0035 +S3061C010D9B0034 +S3061C010D9C0033 +S3061C010D9D0032 +S3061C010D9E0031 +S3061C010D9F0030 +S3061C010DA0002F +S3061C010DA1002E +S3061C010DA2002D +S3061C010DA3002C +S3061C010DA4002B +S3061C010DA5002A +S3061C010DA60029 +S3061C010DA70028 +S3061C010DA80027 +S3061C010DA90026 +S3061C010DAA0025 +S3061C010DAB0024 +S3061C010DAC0023 +S3061C010DAD0022 +S3061C010DAE0021 +S3061C010DAF0020 +S3061C010DB0001F +S3061C010DB1001E +S3061C010DB2001D +S3061C010DB3001C +S3061C010DB4001B +S3061C010DB5001A +S3061C010DB60019 +S3061C010DB70018 +S3061C010DB80017 +S3061C010DB90016 +S3061C010DBA0015 +S3061C010DBB0014 +S3061C010DBC0013 +S3061C010DBD0012 +S3061C010DBE0011 +S3061C010DBF0010 +S3061C010DC0000F +S3061C010DC1000E +S3061C010DC2000D +S3061C010DC3000C +S3061C010DC4000B +S3061C010DC5000A +S3061C010DC60009 +S3061C010DC70008 +S3061C010DC80007 +S3061C010DC90006 +S3061C010DCA0005 +S3061C010DCB0004 +S3061C010DCC0003 +S3061C010DCD0002 +S3061C010DCE0001 +S3061C010DCF0000 +S3061C010DD000FF +S3061C010DD100FE +S3061C010DD200FD +S3061C010DD300FC +S3061C010DD400FB +S3061C010DD500FA +S3061C010DD600F9 +S3061C010DD700F8 +S3061C010DD800F7 +S3061C010DD900F6 +S3061C010DDA00F5 +S3061C010DDB00F4 +S3061C010DDC00F3 +S3061C010DDD00F2 +S3061C010DDE00F1 +S3061C010DDF00F0 +S3061C010DE000EF +S3061C010DE100EE +S3061C010DE200ED +S3061C010DE300EC +S3061C010DE400EB +S3061C010DE500EA +S3061C010DE600E9 +S3061C010DE700E8 +S3061C010DE800E7 +S3061C010DE900E6 +S3061C010DEA00E5 +S3061C010DEB00E4 +S3061C010DEC00E3 +S3061C010DED00E2 +S3061C010DEE00E1 +S3061C010DEF00E0 +S3061C010DF000DF +S3061C010DF100DE +S3061C010DF200DD +S3061C010DF300DC +S3061C010DF400DB +S3061C010DF500DA +S3061C010DF600D9 +S3061C010DF700D8 +S3061C010DF800D7 +S3061C010DF900D6 +S3061C010DFA00D5 +S3061C010DFB00D4 +S3061C010DFC00D3 +S3061C010DFD00D2 +S3061C010DFE00D1 +S3061C010DFF00D0 +S3061C010E0000CE +S3061C010E0100CD +S3061C010E0200CC +S3061C010E0300CB +S3061C010E0400CA +S3061C010E0500C9 +S3061C010E0600C8 +S3061C010E0700C7 +S3061C010E0800C6 +S3061C010E0900C5 +S3061C010E0A00C4 +S3061C010E0B00C3 +S3061C010E0C00C2 +S3061C010E0D00C1 +S3061C010E0E00C0 +S3061C010E0F00BF +S3061C010E1000BE +S3061C010E1100BD +S3061C010E1200BC +S3061C010E1300BB +S3061C010E1400BA +S3061C010E1500B9 +S3061C010E1600B8 +S3061C010E1700B7 +S3061C010E1800B6 +S3061C010E1900B5 +S3061C010E1A00B4 +S3061C010E1B00B3 +S3061C010E1C00B2 +S3061C010E1D00B1 +S3061C010E1E00B0 +S3061C010E1F00AF +S3061C010E2000AE +S3061C010E2100AD +S3061C010E2200AC +S3061C010E2300AB +S3061C010E2400AA +S3061C010E2500A9 +S3061C010E2600A8 +S3061C010E2700A7 +S3061C010E2800A6 +S3061C010E2900A5 +S3061C010E2A00A4 +S3061C010E2B00A3 +S3061C010E2C00A2 +S3061C010E2D00A1 +S3061C010E2E00A0 +S3061C010E2F009F +S3061C010E30009E +S3061C010E31009D +S3061C010E32009C +S3061C010E33009B +S3061C010E34009A +S3061C010E350099 +S3061C010E360098 +S3061C010E370097 +S3061C010E380096 +S3061C010E390095 +S3061C010E3A0094 +S3061C010E3B0093 +S3061C010E3C0092 +S3061C010E3D0091 +S3061C010E3E0090 +S3061C010E3F008F +S3061C010E40008E +S3061C010E41008D +S3061C010E42008C +S3061C010E43008B +S3061C010E44008A +S3061C010E450089 +S3061C010E460088 +S3061C010E470087 +S3061C010E480086 +S3061C010E490085 +S3061C010E4A0084 +S3061C010E4B0083 +S3061C010E4C0082 +S3061C010E4D0081 +S3061C010E4E0080 +S3061C010E4F007F +S3061C010E50007E +S3061C010E51007D +S3061C010E52007C +S3061C010E53007B +S3061C010E54007A +S3061C010E550079 +S3061C010E560078 +S3061C010E570077 +S3061C010E580076 +S3061C010E590075 +S3061C010E5A0074 +S3061C010E5B0073 +S3061C010E5C0072 +S3061C010E5D0071 +S3061C010E5E0070 +S3061C010E5F006F +S3061C010E60006E +S3061C010E61006D +S3061C010E62006C +S3061C010E63006B +S3061C010E64006A +S3061C010E650069 +S3061C010E660068 +S3061C010E670067 +S3061C010E680066 +S3061C010E690065 +S3061C010E6A0064 +S3061C010E6B0063 +S3061C010E6C0062 +S3061C010E6D0061 +S3061C010E6E0060 +S3061C010E6F005F +S3061C010E70005E +S3061C010E71005D +S3061C010E72005C +S3061C010E73005B +S3061C010E74005A +S3061C010E750059 +S3061C010E760058 +S3061C010E770057 +S3061C010E780056 +S3061C010E790055 +S3061C010E7A0054 +S3061C010E7B0053 +S3061C010E7C0052 +S3061C010E7D0051 +S3061C010E7E0050 +S3061C010E7F004F +S3061C010E80004E +S3061C010E81004D +S3061C010E82004C +S3061C010E83004B +S3061C010E84004A +S3061C010E850049 +S3061C010E860048 +S3061C010E870047 +S3061C010E880046 +S3061C010E890045 +S3061C010E8A0044 +S3061C010E8B0043 +S3061C010E8C0042 +S3061C010E8D0041 +S3061C010E8E0040 +S3061C010E8F003F +S3061C010E90003E +S3061C010E91003D +S3061C010E92003C +S3061C010E93003B +S3061C010E94003A +S3061C010E950039 +S3061C010E960038 +S3061C010E970037 +S3061C010E980036 +S3061C010E990035 +S3061C010E9A0034 +S3061C010E9B0033 +S3061C010E9C0032 +S3061C010E9D0031 +S3061C010E9E0030 +S3061C010E9F002F +S3061C010EA0002E +S3061C010EA1002D +S3061C010EA2002C +S3061C010EA3002B +S3061C010EA4002A +S3061C010EA50029 +S3061C010EA60028 +S3061C010EA70027 +S3061C010EA80026 +S3061C010EA90025 +S3061C010EAA0024 +S3061C010EAB0023 +S3061C010EAC0022 +S3061C010EAD0021 +S3061C010EAE0020 +S3061C010EAF001F +S3061C010EB0001E +S3061C010EB1001D +S3061C010EB2001C +S3061C010EB3001B +S3061C010EB4001A +S3061C010EB50019 +S3061C010EB60018 +S3061C010EB70017 +S3061C010EB80016 +S3061C010EB90015 +S3061C010EBA0014 +S3061C010EBB0013 +S3061C010EBC0012 +S3061C010EBD0011 +S3061C010EBE0010 +S3061C010EBF000F +S3061C010EC0000E +S3061C010EC1000D +S3061C010EC2000C +S3061C010EC3000B +S3061C010EC4000A +S3061C010EC50009 +S3061C010EC60008 +S3061C010EC70007 +S3061C010EC80006 +S3061C010EC90005 +S3061C010ECA0004 +S3061C010ECB0003 +S3061C010ECC0002 +S3061C010ECD0001 +S3061C010ECE0000 +S3061C010ECF00FF +S3061C010ED000FE +S3061C010ED100FD +S3061C010ED200FC +S3061C010ED300FB +S3061C010ED400FA +S3061C010ED500F9 +S3061C010ED600F8 +S3061C010ED700F7 +S3061C010ED800F6 +S3061C010ED900F5 +S3061C010EDA00F4 +S3061C010EDB00F3 +S3061C010EDC00F2 +S3061C010EDD00F1 +S3061C010EDE00F0 +S3061C010EDF00EF +S3061C010EE000EE +S3061C010EE100ED +S3061C010EE200EC +S3061C010EE300EB +S3061C010EE400EA +S3061C010EE500E9 +S3061C010EE600E8 +S3061C010EE700E7 +S3061C010EE800E6 +S3061C010EE900E5 +S3061C010EEA00E4 +S3061C010EEB00E3 +S3061C010EEC00E2 +S3061C010EED00E1 +S3061C010EEE00E0 +S3061C010EEF00DF +S3061C010EF000DE +S3061C010EF100DD +S3061C010EF200DC +S3061C010EF300DB +S3061C010EF400DA +S3061C010EF500D9 +S3061C010EF600D8 +S3061C010EF700D7 +S3061C010EF800D6 +S3061C010EF900D5 +S3061C010EFA00D4 +S3061C010EFB00D3 +S3061C010EFC00D2 +S3061C010EFD00D1 +S3061C010EFE00D0 +S3061C010EFF00CF +S3061C010F0000CD +S3061C010F0100CC +S3061C010F0200CB +S3061C010F0300CA +S3061C010F0400C9 +S3061C010F0500C8 +S3061C010F0600C7 +S3061C010F0700C6 +S3061C010F0800C5 +S3061C010F0900C4 +S3061C010F0A00C3 +S3061C010F0B00C2 +S3061C010F0C00C1 +S3061C010F0D00C0 +S3061C010F0E00BF +S3061C010F0F00BE +S3061C010F1000BD +S3061C010F1100BC +S3061C010F1200BB +S3061C010F1300BA +S3061C010F1400B9 +S3061C010F1500B8 +S3061C010F1600B7 +S3061C010F1700B6 +S3061C010F1800B5 +S3061C010F1900B4 +S3061C010F1A00B3 +S3061C010F1B00B2 +S3061C010F1C00B1 +S3061C010F1D00B0 +S3061C010F1E00AF +S3061C010F1F00AE +S3061C010F2000AD +S3061C010F2100AC +S3061C010F2200AB +S3061C010F2300AA +S3061C010F2400A9 +S3061C010F2500A8 +S3061C010F2600A7 +S3061C010F2700A6 +S3061C010F2800A5 +S3061C010F2900A4 +S3061C010F2A00A3 +S3061C010F2B00A2 +S3061C010F2C00A1 +S3061C010F2D00A0 +S3061C010F2E009F +S3061C010F2F009E +S3061C010F30009D +S3061C010F31009C +S3061C010F32009B +S3061C010F33009A +S3061C010F340099 +S3061C010F350098 +S3061C010F360097 +S3061C010F370096 +S3061C010F380095 +S3061C010F390094 +S3061C010F3A0093 +S3061C010F3B0092 +S3061C010F3C0091 +S3061C010F3D0090 +S3061C010F3E008F +S3061C010F3F008E +S3061C010F40008D +S3061C010F41008C +S3061C010F42008B +S3061C010F43008A +S3061C010F440089 +S3061C010F450088 +S3061C010F460087 +S3061C010F470086 +S3061C010F480085 +S3061C010F490084 +S3061C010F4A0083 +S3061C010F4B0082 +S3061C010F4C0081 +S3061C010F4D0080 +S3061C010F4E007F +S3061C010F4F007E +S3061C010F50007D +S3061C010F51007C +S3061C010F52007B +S3061C010F53007A +S3061C010F540079 +S3061C010F550078 +S3061C010F560077 +S3061C010F570076 +S3061C010F580075 +S3061C010F590074 +S3061C010F5A0073 +S3061C010F5B0072 +S3061C010F5C0071 +S3061C010F5D0070 +S3061C010F5E006F +S3061C010F5F006E +S3061C010F60006D +S3061C010F61006C +S3061C010F62006B +S3061C010F63006A +S3061C010F640069 +S3061C010F650068 +S3061C010F660067 +S3061C010F670066 +S3061C010F680065 +S3061C010F690064 +S3061C010F6A0063 +S3061C010F6B0062 +S3061C010F6C0061 +S3061C010F6D0060 +S3061C010F6E005F +S3061C010F6F005E +S3061C010F70005D +S3061C010F71005C +S3061C010F72005B +S3061C010F73005A +S3061C010F740059 +S3061C010F750058 +S3061C010F760057 +S3061C010F770056 +S3061C010F780055 +S3061C010F790054 +S3061C010F7A0053 +S3061C010F7B0052 +S3061C010F7C0051 +S3061C010F7D0050 +S3061C010F7E004F +S3061C010F7F004E +S3061C010F80004D +S3061C010F81004C +S3061C010F82004B +S3061C010F83004A +S3061C010F840049 +S3061C010F850048 +S3061C010F860047 +S3061C010F870046 +S3061C010F880045 +S3061C010F890044 +S3061C010F8A0043 +S3061C010F8B0042 +S3061C010F8C0041 +S3061C010F8D0040 +S3061C010F8E003F +S3061C010F8F003E +S3061C010F90003D +S3061C010F91003C +S3061C010F92003B +S3061C010F93003A +S3061C010F940039 +S3061C010F950038 +S3061C010F960037 +S3061C010F970036 +S3061C010F980035 +S3061C010F990034 +S3061C010F9A0033 +S3061C010F9B0032 +S3061C010F9C0031 +S3061C010F9D0030 +S3061C010F9E002F +S3061C010F9F002E +S3061C010FA0002D +S3061C010FA1002C +S3061C010FA2002B +S3061C010FA3002A +S3061C010FA40029 +S3061C010FA50028 +S3061C010FA60027 +S3061C010FA70026 +S3061C010FA80025 +S3061C010FA90024 +S3061C010FAA0023 +S3061C010FAB0022 +S3061C010FAC0021 +S3061C010FAD0020 +S3061C010FAE001F +S3061C010FAF001E +S3061C010FB0001D +S3061C010FB1001C +S3061C010FB2001B +S3061C010FB3001A +S3061C010FB40019 +S3061C010FB50018 +S3061C010FB60017 +S3061C010FB70016 +S3061C010FB80015 +S3061C010FB90014 +S3061C010FBA0013 +S3061C010FBB0012 +S3061C010FBC0011 +S3061C010FBD0010 +S3061C010FBE000F +S3061C010FBF000E +S3061C010FC0000D +S3061C010FC1000C +S3061C010FC2000B +S3061C010FC3000A +S3061C010FC40009 +S3061C010FC50008 +S3061C010FC60007 +S3061C010FC70006 +S3061C010FC80005 +S3061C010FC90004 +S3061C010FCA0003 +S3061C010FCB0002 +S3061C010FCC0001 +S3061C010FCD0000 +S3061C010FCE00FF +S3061C010FCF00FE +S3061C010FD000FD +S3061C010FD100FC +S3061C010FD200FB +S3061C010FD300FA +S3061C010FD400F9 +S3061C010FD500F8 +S3061C010FD600F7 +S3061C010FD700F6 +S3061C010FD800F5 +S3061C010FD900F4 +S3061C010FDA00F3 +S3061C010FDB00F2 +S3061C010FDC00F1 +S3061C010FDD00F0 +S3061C010FDE00EF +S3061C010FDF00EE +S3061C010FE000ED +S3061C010FE100EC +S3061C010FE200EB +S3061C010FE300EA +S3061C010FE400E9 +S3061C010FE500E8 +S3061C010FE600E7 +S3061C010FE700E6 +S3061C010FE800E5 +S3061C010FE900E4 +S3061C010FEA00E3 +S3061C010FEB00E2 +S3061C010FEC00E1 +S3061C010FED00E0 +S3061C010FEE00DF +S3061C010FEF00DE +S3061C010FF000DD +S3061C010FF100DC +S3061C010FF200DB +S3061C010FF300DA +S3061C010FF400D9 +S3061C010FF500D8 +S3061C010FF600D7 +S3061C010FF700D6 +S3061C010FF800D5 +S3061C010FF900D4 +S3061C010FFA00D3 +S3061C010FFB00D2 +S3061C010FFC00D1 +S3061C010FFD00D0 +S3061C010FFE00CF +S3061C010FFF00CE +S3061C01100000CC +S3061C01100100CB +S3061C01100200CA +S3061C01100300C9 +S3061C01100400C8 +S3061C01100500C7 +S3061C01100600C6 +S3061C01100700C5 +S3061C01100800C4 +S3061C01100900C3 +S3061C01100A00C2 +S3061C01100B00C1 +S3061C01100C00C0 +S3061C01100D00BF +S3061C01100E00BE +S3061C01100F00BD +S3061C01101000BC +S3061C01101100BB +S3061C01101200BA +S3061C01101300B9 +S3061C01101400B8 +S3061C01101500B7 +S3061C01101600B6 +S3061C01101700B5 +S3061C01101800B4 +S3061C01101900B3 +S3061C01101A00B2 +S3061C01101B00B1 +S3061C01101C00B0 +S3061C01101D00AF +S3061C01101E00AE +S3061C01101F00AD +S3061C01102000AC +S3061C01102100AB +S3061C01102200AA +S3061C01102300A9 +S3061C01102400A8 +S3061C01102500A7 +S3061C01102600A6 +S3061C01102700A5 +S3061C01102800A4 +S3061C01102900A3 +S3061C01102A00A2 +S3061C01102B00A1 +S3061C01102C00A0 +S3061C01102D009F +S3061C01102E009E +S3061C01102F009D +S3061C011030009C +S3061C011031009B +S3061C011032009A +S3061C0110330099 +S3061C0110340098 +S3061C0110350097 +S3061C0110360096 +S3061C0110370095 +S3061C0110380094 +S3061C0110390093 +S3061C01103A0092 +S3061C01103B0091 +S3061C01103C0090 +S3061C01103D008F +S3061C01103E008E +S3061C01103F008D +S3061C011040008C +S3061C011041008B +S3061C011042008A +S3061C0110430089 +S3061C0110440088 +S3061C0110450087 +S3061C0110460086 +S3061C0110470085 +S3061C0110480084 +S3061C0110490083 +S3061C01104A0082 +S3061C01104B0081 +S3061C01104C0080 +S3061C01104D007F +S3061C01104E007E +S3061C01104F007D +S3061C011050007C +S3061C011051007B +S3061C011052007A +S3061C0110530079 +S3061C0110540078 +S3061C0110550077 +S3061C0110560076 +S3061C0110570075 +S3061C0110580074 +S3061C0110590073 +S3061C01105A0072 +S3061C01105B0071 +S3061C01105C0070 +S3061C01105D006F +S3061C01105E006E +S3061C01105F006D +S3061C011060006C +S3061C011061006B +S3061C011062006A +S3061C0110630069 +S3061C0110640068 +S3061C0110650067 +S3061C0110660066 +S3061C0110670065 +S3061C0110680064 +S3061C0110690063 +S3061C01106A0062 +S3061C01106B0061 +S3061C01106C0060 +S3061C01106D005F +S3061C01106E005E +S3061C01106F005D +S3061C011070005C +S3061C011071005B +S3061C011072005A +S3061C0110730059 +S3061C0110740058 +S3061C0110750057 +S3061C0110760056 +S3061C0110770055 +S3061C0110780054 +S3061C0110790053 +S3061C01107A0052 +S3061C01107B0051 +S3061C01107C0050 +S3061C01107D004F +S3061C01107E004E +S3061C01107F004D +S3061C011080004C +S3061C011081004B +S3061C011082004A +S3061C0110830049 +S3061C0110840048 +S3061C0110850047 +S3061C0110860046 +S3061C0110870045 +S3061C0110880044 +S3061C0110890043 +S3061C01108A0042 +S3061C01108B0041 +S3061C01108C0040 +S3061C01108D003F +S3061C01108E003E +S3061C01108F003D +S3061C011090003C +S3061C011091003B +S3061C011092003A +S3061C0110930039 +S3061C0110940038 +S3061C0110950037 +S3061C0110960036 +S3061C0110970035 +S3061C0110980034 +S3061C0110990033 +S3061C01109A0032 +S3061C01109B0031 +S3061C01109C0030 +S3061C01109D002F +S3061C01109E002E +S3061C01109F002D +S3061C0110A0002C +S3061C0110A1002B +S3061C0110A2002A +S3061C0110A30029 +S3061C0110A40028 +S3061C0110A50027 +S3061C0110A60026 +S3061C0110A70025 +S3061C0110A80024 +S3061C0110A90023 +S3061C0110AA0022 +S3061C0110AB0021 +S3061C0110AC0020 +S3061C0110AD001F +S3061C0110AE001E +S3061C0110AF001D +S3061C0110B0001C +S3061C0110B1001B +S3061C0110B2001A +S3061C0110B30019 +S3061C0110B40018 +S3061C0110B50017 +S3061C0110B60016 +S3061C0110B70015 +S3061C0110B80014 +S3061C0110B90013 +S3061C0110BA0012 +S3061C0110BB0011 +S3061C0110BC0010 +S3061C0110BD000F +S3061C0110BE000E +S3061C0110BF000D +S3061C0110C0000C +S3061C0110C1000B +S3061C0110C2000A +S3061C0110C30009 +S3061C0110C40008 +S3061C0110C50007 +S3061C0110C60006 +S3061C0110C70005 +S3061C0110C80004 +S3061C0110C90003 +S3061C0110CA0002 +S3061C0110CB0001 +S3061C0110CC0000 +S3061C0110CD00FF +S3061C0110CE00FE +S3061C0110CF00FD +S3061C0110D000FC +S3061C0110D100FB +S3061C0110D200FA +S3061C0110D300F9 +S3061C0110D400F8 +S3061C0110D500F7 +S3061C0110D600F6 +S3061C0110D700F5 +S3061C0110D800F4 +S3061C0110D900F3 +S3061C0110DA00F2 +S3061C0110DB00F1 +S3061C0110DC00F0 +S3061C0110DD00EF +S3061C0110DE00EE +S3061C0110DF00ED +S3061C0110E000EC +S3061C0110E100EB +S3061C0110E200EA +S3061C0110E300E9 +S3061C0110E400E8 +S3061C0110E500E7 +S3061C0110E600E6 +S3061C0110E700E5 +S3061C0110E800E4 +S3061C0110E900E3 +S3061C0110EA00E2 +S3061C0110EB00E1 +S3061C0110EC00E0 +S3061C0110ED00DF +S3061C0110EE00DE +S3061C0110EF00DD +S3061C0110F000DC +S3061C0110F100DB +S3061C0110F200DA +S3061C0110F300D9 +S3061C0110F400D8 +S3061C0110F500D7 +S3061C0110F600D6 +S3061C0110F700D5 +S3061C0110F800D4 +S3061C0110F900D3 +S3061C0110FA00D2 +S3061C0110FB00D1 +S3061C0110FC00D0 +S3061C0110FD00CF +S3061C0110FE00CE +S3061C0110FF00CD +S3061C01110000CB +S3061C01110100CA +S3061C01110200C9 +S3061C01110300C8 +S3061C01110400C7 +S3061C01110500C6 +S3061C01110600C5 +S3061C01110700C4 +S3061C01110800C3 +S3061C01110900C2 +S3061C01110A00C1 +S3061C01110B00C0 +S3061C01110C00BF +S3061C01110D00BE +S3061C01110E00BD +S3061C01110F00BC +S3061C01111000BB +S3061C01111100BA +S3061C01111200B9 +S3061C01111300B8 +S3061C01111400B7 +S3061C01111500B6 +S3061C01111600B5 +S3061C01111700B4 +S3061C01111800B3 +S3061C01111900B2 +S3061C01111A00B1 +S3061C01111B00B0 +S3061C01111C00AF +S3061C01111D00AE +S3061C01111E00AD +S3061C01111F00AC +S3061C01112000AB +S3061C01112100AA +S3061C01112200A9 +S3061C01112300A8 +S3061C01112400A7 +S3061C01112500A6 +S3061C01112600A5 +S3061C01112700A4 +S3061C01112800A3 +S3061C01112900A2 +S3061C01112A00A1 +S3061C01112B00A0 +S3061C01112C009F +S3061C01112D009E +S3061C01112E009D +S3061C01112F009C +S3061C011130009B +S3061C011131009A +S3061C0111320099 +S3061C0111330098 +S3061C0111340097 +S3061C0111350096 +S3061C0111360095 +S3061C0111370094 +S3061C0111380093 +S3061C0111390092 +S3061C01113A0091 +S3061C01113B0090 +S3061C01113C008F +S3061C01113D008E +S3061C01113E008D +S3061C01113F008C +S3061C011140008B +S3061C011141008A +S3061C0111420089 +S3061C0111430088 +S3061C0111440087 +S3061C0111450086 +S3061C0111460085 +S3061C0111470084 +S3061C0111480083 +S3061C0111490082 +S3061C01114A0081 +S3061C01114B0080 +S3061C01114C007F +S3061C01114D007E +S3061C01114E007D +S3061C01114F007C +S3061C011150007B +S3061C011151007A +S3061C0111520079 +S3061C0111530078 +S3061C0111540077 +S3061C0111550076 +S3061C0111560075 +S3061C0111570074 +S3061C0111580073 +S3061C0111590072 +S3061C01115A0071 +S3061C01115B0070 +S3061C01115C006F +S3061C01115D006E +S3061C01115E006D +S3061C01115F006C +S3061C011160006B +S3061C011161006A +S3061C0111620069 +S3061C0111630068 +S3061C0111640067 +S3061C0111650066 +S3061C0111660065 +S3061C0111670064 +S3061C0111680063 +S3061C0111690062 +S3061C01116A0061 +S3061C01116B0060 +S3061C01116C005F +S3061C01116D005E +S3061C01116E005D +S3061C01116F005C +S3061C011170005B +S3061C011171005A +S3061C0111720059 +S3061C0111730058 +S3061C0111740057 +S3061C0111750056 +S3061C0111760055 +S3061C0111770054 +S3061C0111780053 +S3061C0111790052 +S3061C01117A0051 +S3061C01117B0050 +S3061C01117C004F +S3061C01117D004E +S3061C01117E004D +S3061C01117F004C +S3061C011180004B +S3061C011181004A +S3061C0111820049 +S3061C0111830048 +S3061C0111840047 +S3061C0111850046 +S3061C0111860045 +S3061C0111870044 +S3061C0111880043 +S3061C0111890042 +S3061C01118A0041 +S3061C01118B0040 +S3061C01118C003F +S3061C01118D003E +S3061C01118E003D +S3061C01118F003C +S3061C011190003B +S3061C011191003A +S3061C0111920039 +S3061C0111930038 +S3061C0111940037 +S3061C0111950036 +S3061C0111960035 +S3061C0111970034 +S3061C0111980033 +S3061C0111990032 +S3061C01119A0031 +S3061C01119B0030 +S3061C01119C002F +S3061C01119D002E +S3061C01119E002D +S3061C01119F002C +S3061C0111A0002B +S3061C0111A1002A +S3061C0111A20029 +S3061C0111A30028 +S3061C0111A40027 +S3061C0111A50026 +S3061C0111A60025 +S3061C0111A70024 +S3061C0111A80023 +S3061C0111A90022 +S3061C0111AA0021 +S3061C0111AB0020 +S3061C0111AC001F +S3061C0111AD001E +S3061C0111AE001D +S3061C0111AF001C +S3061C0111B0001B +S3061C0111B1001A +S3061C0111B20019 +S3061C0111B30018 +S3061C0111B40017 +S3061C0111B50016 +S3061C0111B60015 +S3061C0111B70014 +S3061C0111B80013 +S3061C0111B90012 +S3061C0111BA0011 +S3061C0111BB0010 +S3061C0111BC000F +S3061C0111BD000E +S3061C0111BE000D +S3061C0111BF000C +S3061C0111C0000B +S3061C0111C1000A +S3061C0111C20009 +S3061C0111C30008 +S3061C0111C40007 +S3061C0111C50006 +S3061C0111C60005 +S3061C0111C70004 +S3061C0111C80003 +S3061C0111C90002 +S3061C0111CA0001 +S3061C0111CB0000 +S3061C0111CC00FF +S3061C0111CD00FE +S3061C0111CE00FD +S3061C0111CF00FC +S3061C0111D000FB +S3061C0111D100FA +S3061C0111D200F9 +S3061C0111D300F8 +S3061C0111D400F7 +S3061C0111D500F6 +S3061C0111D600F5 +S3061C0111D700F4 +S3061C0111D800F3 +S3061C0111D900F2 +S3061C0111DA00F1 +S3061C0111DB00F0 +S3061C0111DC00EF +S3061C0111DD00EE +S3061C0111DE00ED +S3061C0111DF00EC +S3061C0111E000EB +S3061C0111E100EA +S3061C0111E200E9 +S3061C0111E300E8 +S3061C0111E400E7 +S3061C0111E500E6 +S3061C0111E600E5 +S3061C0111E700E4 +S3061C0111E800E3 +S3061C0111E900E2 +S3061C0111EA00E1 +S3061C0111EB00E0 +S3061C0111EC00DF +S3061C0111ED00DE +S3061C0111EE00DD +S3061C0111EF00DC +S3061C0111F000DB +S3061C0111F100DA +S3061C0111F200D9 +S3061C0111F300D8 +S3061C0111F400D7 +S3061C0111F500D6 +S3061C0111F600D5 +S3061C0111F700D4 +S3061C0111F800D3 +S3061C0111F900D2 +S3061C0111FA00D1 +S3061C0111FB00D0 +S3061C0111FC00CF +S3061C0111FD00CE +S3061C0111FE00CD +S3061C0111FF00CC +S3061C01120000CA +S3061C01120100C9 +S3061C01120200C8 +S3061C01120300C7 +S3061C01120400C6 +S3061C01120500C5 +S3061C01120600C4 +S3061C01120700C3 +S3061C01120800C2 +S3061C01120900C1 +S3061C01120A00C0 +S3061C01120B00BF +S3061C01120C00BE +S3061C01120D00BD +S3061C01120E00BC +S3061C01120F00BB +S3061C01121000BA +S3061C01121100B9 +S3061C01121200B8 +S3061C01121300B7 +S3061C01121400B6 +S3061C01121500B5 +S3061C01121600B4 +S3061C01121700B3 +S3061C01121800B2 +S3061C01121900B1 +S3061C01121A00B0 +S3061C01121B00AF +S3061C01121C00AE +S3061C01121D00AD +S3061C01121E00AC +S3061C01121F00AB +S3061C01122000AA +S3061C01122100A9 +S3061C01122200A8 +S3061C01122300A7 +S3061C01122400A6 +S3061C01122500A5 +S3061C01122600A4 +S3061C01122700A3 +S3061C01122800A2 +S3061C01122900A1 +S3061C01122A00A0 +S3061C01122B009F +S3061C01122C009E +S3061C01122D009D +S3061C01122E009C +S3061C01122F009B +S3061C011230009A +S3061C0112310099 +S3061C0112320098 +S3061C0112330097 +S3061C0112340096 +S3061C0112350095 +S3061C0112360094 +S3061C0112370093 +S3061C0112380092 +S3061C0112390091 +S3061C01123A0090 +S3061C01123B008F +S3061C01123C008E +S3061C01123D008D +S3061C01123E008C +S3061C01123F008B +S3061C011240008A +S3061C0112410089 +S3061C0112420088 +S3061C0112430087 +S3061C0112440086 +S3061C0112450085 +S3061C0112460084 +S3061C0112470083 +S3061C0112480082 +S3061C0112490081 +S3061C01124A0080 +S3061C01124B007F +S3061C01124C007E +S3061C01124D007D +S3061C01124E007C +S3061C01124F007B +S3061C011250007A +S3061C0112510079 +S3061C0112520078 +S3061C0112530077 +S3061C0112540076 +S3061C0112550075 +S3061C0112560074 +S3061C0112570073 +S3061C0112580072 +S3061C0112590071 +S3061C01125A0070 +S3061C01125B006F +S3061C01125C006E +S3061C01125D006D +S3061C01125E006C +S3061C01125F006B +S3061C011260006A +S3061C0112610069 +S3061C0112620068 +S3061C0112630067 +S3061C0112640066 +S3061C0112650065 +S3061C0112660064 +S3061C0112670063 +S3061C0112680062 +S3061C0112690061 +S3061C01126A0060 +S3061C01126B005F +S3061C01126C005E +S3061C01126D005D +S3061C01126E005C +S3061C01126F005B +S3061C011270005A +S3061C0112710059 +S3061C0112720058 +S3061C0112730057 +S3061C0112740056 +S3061C0112750055 +S3061C0112760054 +S3061C0112770053 +S3061C0112780052 +S3061C0112790051 +S3061C01127A0050 +S3061C01127B004F +S3061C01127C004E +S3061C01127D004D +S3061C01127E004C +S3061C01127F004B +S3061C011280004A +S3061C0112810049 +S3061C0112820048 +S3061C0112830047 +S3061C0112840046 +S3061C0112850045 +S3061C0112860044 +S3061C0112870043 +S3061C0112880042 +S3061C0112890041 +S3061C01128A0040 +S3061C01128B003F +S3061C01128C003E +S3061C01128D003D +S3061C01128E003C +S3061C01128F003B +S3061C011290003A +S3061C0112910039 +S3061C0112920038 +S3061C0112930037 +S3061C0112940036 +S3061C0112950035 +S3061C0112960034 +S3061C0112970033 +S3061C0112980032 +S3061C0112990031 +S3061C01129A0030 +S3061C01129B002F +S3061C01129C002E +S3061C01129D002D +S3061C01129E002C +S3061C01129F002B +S3061C0112A0002A +S3061C0112A10029 +S3061C0112A20028 +S3061C0112A30027 +S3061C0112A40026 +S3061C0112A50025 +S3061C0112A60024 +S3061C0112A70023 +S3061C0112A80022 +S3061C0112A90021 +S3061C0112AA0020 +S3061C0112AB001F +S3061C0112AC001E +S3061C0112AD001D +S3061C0112AE001C +S3061C0112AF001B +S3061C0112B0001A +S3061C0112B10019 +S3061C0112B20018 +S3061C0112B30017 +S3061C0112B40016 +S3061C0112B50015 +S3061C0112B60014 +S3061C0112B70013 +S3061C0112B80012 +S3061C0112B90011 +S3061C0112BA0010 +S3061C0112BB000F +S3061C0112BC000E +S3061C0112BD000D +S3061C0112BE000C +S3061C0112BF000B +S3061C0112C0000A +S3061C0112C10009 +S3061C0112C20008 +S3061C0112C30007 +S3061C0112C40006 +S3061C0112C50005 +S3061C0112C60004 +S3061C0112C70003 +S3061C0112C80002 +S3061C0112C90001 +S3061C0112CA0000 +S3061C0112CB00FF +S3061C0112CC00FE +S3061C0112CD00FD +S3061C0112CE00FC +S3061C0112CF00FB +S3061C0112D000FA +S3061C0112D100F9 +S3061C0112D200F8 +S3061C0112D300F7 +S3061C0112D400F6 +S3061C0112D500F5 +S3061C0112D600F4 +S3061C0112D700F3 +S3061C0112D800F2 +S3061C0112D900F1 +S3061C0112DA00F0 +S3061C0112DB00EF +S3061C0112DC00EE +S3061C0112DD00ED +S3061C0112DE00EC +S3061C0112DF00EB +S3061C0112E000EA +S3061C0112E100E9 +S3061C0112E200E8 +S3061C0112E300E7 +S3061C0112E400E6 +S3061C0112E500E5 +S3061C0112E600E4 +S3061C0112E700E3 +S3061C0112E800E2 +S3061C0112E900E1 +S3061C0112EA00E0 +S3061C0112EB00DF +S3061C0112EC00DE +S3061C0112ED00DD +S3061C0112EE00DC +S3061C0112EF00DB +S3061C0112F000DA +S3061C0112F100D9 +S3061C0112F200D8 +S3061C0112F300D7 +S3061C0112F400D6 +S3061C0112F500D5 +S3061C0112F600D4 +S3061C0112F700D3 +S3061C0112F800D2 +S3061C0112F900D1 +S3061C0112FA00D0 +S3061C0112FB00CF +S3061C0112FC00CE +S3061C0112FD00CD +S3061C0112FE00CC +S3061C0112FF00CB +S3061C01130000C9 +S3061C01130100C8 +S3061C01130200C7 +S3061C01130300C6 +S3061C01130400C5 +S3061C01130500C4 +S3061C01130600C3 +S3061C01130700C2 +S3061C01130800C1 +S3061C01130900C0 +S3061C01130A00BF +S3061C01130B00BE +S3061C01130C00BD +S3061C01130D00BC +S3061C01130E00BB +S3061C01130F00BA +S3061C01131000B9 +S3061C01131100B8 +S3061C01131200B7 +S3061C01131300B6 +S3061C01131400B5 +S3061C01131500B4 +S3061C01131600B3 +S3061C01131700B2 +S3061C01131800B1 +S3061C01131900B0 +S3061C01131A00AF +S3061C01131B00AE +S3061C01131C00AD +S3061C01131D00AC +S3061C01131E00AB +S3061C01131F00AA +S3061C01132000A9 +S3061C01132100A8 +S3061C01132200A7 +S3061C01132300A6 +S3061C01132400A5 +S3061C01132500A4 +S3061C01132600A3 +S3061C01132700A2 +S3061C01132800A1 +S3061C01132900A0 +S3061C01132A009F +S3061C01132B009E +S3061C01132C009D +S3061C01132D009C +S3061C01132E009B +S3061C01132F009A +S3061C0113300099 +S3061C0113310098 +S3061C0113320097 +S3061C0113330096 +S3061C0113340095 +S3061C0113350094 +S3061C0113360093 +S3061C0113370092 +S3061C0113380091 +S3061C0113390090 +S3061C01133A008F +S3061C01133B008E +S3061C01133C008D +S3061C01133D008C +S3061C01133E008B +S3061C01133F008A +S3061C0113400089 +S3061C0113410088 +S3061C0113420087 +S3061C0113430086 +S3061C0113440085 +S3061C0113450084 +S3061C0113460083 +S3061C0113470082 +S3061C0113480081 +S3061C0113490080 +S3061C01134A007F +S3061C01134B007E +S3061C01134C007D +S3061C01134D007C +S3061C01134E007B +S3061C01134F007A +S3061C0113500079 +S3061C0113510078 +S3061C0113520077 +S3061C0113530076 +S3061C0113540075 +S3061C0113550074 +S3061C0113560073 +S3061C0113570072 +S3061C0113580071 +S3061C0113590070 +S3061C01135A006F +S3061C01135B006E +S3061C01135C006D +S3061C01135D006C +S3061C01135E006B +S3061C01135F006A +S3061C0113600069 +S3061C0113610068 +S3061C0113620067 +S3061C0113630066 +S3061C0113640065 +S3061C0113650064 +S3061C0113660063 +S3061C0113670062 +S3061C0113680061 +S3061C0113690060 +S3061C01136A005F +S3061C01136B005E +S3061C01136C005D +S3061C01136D005C +S3061C01136E005B +S3061C01136F005A +S3061C0113700059 +S3061C0113710058 +S3061C0113720057 +S3061C0113730056 +S3061C0113740055 +S3061C0113750054 +S3061C0113760053 +S3061C0113770052 +S3061C0113780051 +S3061C0113790050 +S3061C01137A004F +S3061C01137B004E +S3061C01137C004D +S3061C01137D004C +S3061C01137E004B +S3061C01137F004A +S3061C0113800049 +S3061C0113810048 +S3061C0113820047 +S3061C0113830046 +S3061C0113840045 +S3061C0113850044 +S3061C0113860043 +S3061C0113870042 +S3061C0113880041 +S3061C0113890040 +S3061C01138A003F +S3061C01138B003E +S3061C01138C003D +S3061C01138D003C +S3061C01138E003B +S3061C01138F003A +S3061C0113900039 +S3061C0113910038 +S3061C0113920037 +S3061C0113930036 +S3061C0113940035 +S3061C0113950034 +S3061C0113960033 +S3061C0113970032 +S3061C0113980031 +S3061C0113990030 +S3061C01139A002F +S3061C01139B002E +S3061C01139C002D +S3061C01139D002C +S3061C01139E002B +S3061C01139F002A +S3061C0113A00029 +S3061C0113A10028 +S3061C0113A20027 +S3061C0113A30026 +S3061C0113A40025 +S3061C0113A50024 +S3061C0113A60023 +S3061C0113A70022 +S3061C0113A80021 +S3061C0113A90020 +S3061C0113AA001F +S3061C0113AB001E +S3061C0113AC001D +S3061C0113AD001C +S3061C0113AE001B +S3061C0113AF001A +S3061C0113B00019 +S3061C0113B10018 +S3061C0113B20017 +S3061C0113B30016 +S3061C0113B40015 +S3061C0113B50014 +S3061C0113B60013 +S3061C0113B70012 +S3061C0113B80011 +S3061C0113B90010 +S3061C0113BA000F +S3061C0113BB000E +S3061C0113BC000D +S3061C0113BD000C +S3061C0113BE000B +S3061C0113BF000A +S3061C0113C00009 +S3061C0113C10008 +S3061C0113C20007 +S3061C0113C30006 +S3061C0113C40005 +S3061C0113C50004 +S3061C0113C60003 +S3061C0113C70002 +S3061C0113C80001 +S3061C0113C90000 +S3061C0113CA00FF +S3061C0113CB00FE +S3061C0113CC00FD +S3061C0113CD00FC +S3061C0113CE00FB +S3061C0113CF00FA +S3061C0113D000F9 +S3061C0113D100F8 +S3061C0113D200F7 +S3061C0113D300F6 +S3061C0113D400F5 +S3061C0113D500F4 +S3061C0113D600F3 +S3061C0113D700F2 +S3061C0113D800F1 +S3061C0113D900F0 +S3061C0113DA00EF +S3061C0113DB00EE +S3061C0113DC00ED +S3061C0113DD00EC +S3061C0113DE00EB +S3061C0113DF00EA +S3061C0113E000E9 +S3061C0113E100E8 +S3061C0113E200E7 +S3061C0113E300E6 +S3061C0113E400E5 +S3061C0113E500E4 +S3061C0113E600E3 +S3061C0113E700E2 +S3061C0113E800E1 +S3061C0113E900E0 +S3061C0113EA00DF +S3061C0113EB00DE +S3061C0113EC00DD +S3061C0113ED00DC +S3061C0113EE00DB +S3061C0113EF00DA +S3061C0113F000D9 +S3061C0113F100D8 +S3061C0113F200D7 +S3061C0113F300D6 +S3061C0113F400D5 +S3061C0113F500D4 +S3061C0113F600D3 +S3061C0113F700D2 +S3061C0113F800D1 +S3061C0113F900D0 +S3061C0113FA00CF +S3061C0113FB00CE +S3061C0113FC00CD +S3061C0113FD00CC +S3061C0113FE00CB +S3061C0113FF00CA +S3061C01140000C8 +S3061C01140100C7 +S3061C01140200C6 +S3061C01140300C5 +S3061C01140400C4 +S3061C01140500C3 +S3061C01140600C2 +S3061C01140700C1 +S3061C01140800C0 +S3061C01140900BF +S3061C01140A00BE +S3061C01140B00BD +S3061C01140C00BC +S3061C01140D00BB +S3061C01140E00BA +S3061C01140F00B9 +S3061C01141000B8 +S3061C01141100B7 +S3061C01141200B6 +S3061C01141300B5 +S3061C01141400B4 +S3061C01141500B3 +S3061C01141600B2 +S3061C01141700B1 +S3061C01141800B0 +S3061C01141900AF +S3061C01141A00AE +S3061C01141B00AD +S3061C01141C00AC +S3061C01141D00AB +S3061C01141E00AA +S3061C01141F00A9 +S3061C01142000A8 +S3061C01142100A7 +S3061C01142200A6 +S3061C01142300A5 +S3061C01142400A4 +S3061C01142500A3 +S3061C01142600A2 +S3061C01142700A1 +S3061C01142800A0 +S3061C011429009F +S3061C01142A009E +S3061C01142B009D +S3061C01142C009C +S3061C01142D009B +S3061C01142E009A +S3061C01142F0099 +S3061C0114300098 +S3061C0114310097 +S3061C0114320096 +S3061C0114330095 +S3061C0114340094 +S3061C0114350093 +S3061C0114360092 +S3061C0114370091 +S3061C0114380090 +S3061C011439008F +S3061C01143A008E +S3061C01143B008D +S3061C01143C008C +S3061C01143D008B +S3061C01143E008A +S3061C01143F0089 +S3061C0114400088 +S3061C0114410087 +S3061C0114420086 +S3061C0114430085 +S3061C0114440084 +S3061C0114450083 +S3061C0114460082 +S3061C0114470081 +S3061C0114480080 +S3061C011449007F +S3061C01144A007E +S3061C01144B007D +S3061C01144C007C +S3061C01144D007B +S3061C01144E007A +S3061C01144F0079 +S3061C0114500078 +S3061C0114510077 +S3061C0114520076 +S3061C0114530075 +S3061C0114540074 +S3061C0114550073 +S3061C0114560072 +S3061C0114570071 +S3061C0114580070 +S3061C011459006F +S3061C01145A006E +S3061C01145B006D +S3061C01145C006C +S3061C01145D006B +S3061C01145E006A +S3061C01145F0069 +S3061C0114600068 +S3061C0114610067 +S3061C0114620066 +S3061C0114630065 +S3061C0114640064 +S3061C0114650063 +S3061C0114660062 +S3061C0114670061 +S3061C0114680060 +S3061C011469005F +S3061C01146A005E +S3061C01146B005D +S3061C01146C005C +S3061C01146D005B +S3061C01146E005A +S3061C01146F0059 +S3061C0114700058 +S3061C0114710057 +S3061C0114720056 +S3061C0114730055 +S3061C0114740054 +S3061C0114750053 +S3061C0114760052 +S3061C0114770051 +S3061C0114780050 +S3061C011479004F +S3061C01147A004E +S3061C01147B004D +S3061C01147C004C +S3061C01147D004B +S3061C01147E004A +S3061C01147F0049 +S3061C0114800048 +S3061C0114810047 +S3061C0114820046 +S3061C0114830045 +S3061C0114840044 +S3061C0114850043 +S3061C0114860042 +S3061C0114870041 +S3061C0114880040 +S3061C011489003F +S3061C01148A003E +S3061C01148B003D +S3061C01148C003C +S3061C01148D003B +S3061C01148E003A +S3061C01148F0039 +S3061C0114900038 +S3061C0114910037 +S3061C0114920036 +S3061C0114930035 +S3061C0114940034 +S3061C0114950033 +S3061C0114960032 +S3061C0114970031 +S3061C0114980030 +S3061C011499002F +S3061C01149A002E +S3061C01149B002D +S3061C01149C002C +S3061C01149D002B +S3061C01149E002A +S3061C01149F0029 +S3061C0114A00028 +S3061C0114A10027 +S3061C0114A20026 +S3061C0114A30025 +S3061C0114A40024 +S3061C0114A50023 +S3061C0114A60022 +S3061C0114A70021 +S3061C0114A80020 +S3061C0114A9001F +S3061C0114AA001E +S3061C0114AB001D +S3061C0114AC001C +S3061C0114AD001B +S3061C0114AE001A +S3061C0114AF0019 +S3061C0114B00018 +S3061C0114B10017 +S3061C0114B20016 +S3061C0114B30015 +S3061C0114B40014 +S3061C0114B50013 +S3061C0114B60012 +S3061C0114B70011 +S3061C0114B80010 +S3061C0114B9000F +S3061C0114BA000E +S3061C0114BB000D +S3061C0114BC000C +S3061C0114BD000B +S3061C0114BE000A +S3061C0114BF0009 +S3061C0114C00008 +S3061C0114C10007 +S3061C0114C20006 +S3061C0114C30005 +S3061C0114C40004 +S3061C0114C50003 +S3061C0114C60002 +S3061C0114C70001 +S3061C0114C80000 +S3061C0114C900FF +S3061C0114CA00FE +S3061C0114CB00FD +S3061C0114CC00FC +S3061C0114CD00FB +S3061C0114CE00FA +S3061C0114CF00F9 +S3061C0114D000F8 +S3061C0114D100F7 +S3061C0114D200F6 +S3061C0114D300F5 +S3061C0114D400F4 +S3061C0114D500F3 +S3061C0114D600F2 +S3061C0114D700F1 +S3061C0114D800F0 +S3061C0114D900EF +S3061C0114DA00EE +S3061C0114DB00ED +S3061C0114DC00EC +S3061C0114DD00EB +S3061C0114DE00EA +S3061C0114DF00E9 +S3061C0114E000E8 +S3061C0114E100E7 +S3061C0114E200E6 +S3061C0114E300E5 +S3061C0114E400E4 +S3061C0114E500E3 +S3061C0114E600E2 +S3061C0114E700E1 +S3061C0114E800E0 +S3061C0114E900DF +S3061C0114EA00DE +S3061C0114EB00DD +S3061C0114EC00DC +S3061C0114ED00DB +S3061C0114EE00DA +S3061C0114EF00D9 +S3061C0114F000D8 +S3061C0114F100D7 +S3061C0114F200D6 +S3061C0114F300D5 +S3061C0114F400D4 +S3061C0114F500D3 +S3061C0114F600D2 +S3061C0114F700D1 +S3061C0114F800D0 +S3061C0114F900CF +S3061C0114FA00CE +S3061C0114FB00CD +S3061C0114FC00CC +S3061C0114FD00CB +S3061C0114FE00CA +S3061C0114FF00C9 +S3061C01150000C7 +S3061C01150100C6 +S3061C01150200C5 +S3061C01150300C4 +S3061C01150400C3 +S3061C01150500C2 +S3061C01150600C1 +S3061C01150700C0 +S3061C01150800BF +S3061C01150900BE +S3061C01150A00BD +S3061C01150B00BC +S3061C01150C00BB +S3061C01150D00BA +S3061C01150E00B9 +S3061C01150F00B8 +S3061C01151000B7 +S3061C01151100B6 +S3061C01151200B5 +S3061C01151300B4 +S3061C01151400B3 +S3061C01151500B2 +S3061C01151600B1 +S3061C01151700B0 +S3061C01151800AF +S3061C01151900AE +S3061C01151A00AD +S3061C01151B00AC +S3061C01151C00AB +S3061C01151D00AA +S3061C01151E00A9 +S3061C01151F00A8 +S3061C01152000A7 +S3061C01152100A6 +S3061C01152200A5 +S3061C01152300A4 +S3061C01152400A3 +S3061C01152500A2 +S3061C01152600A1 +S3061C01152700A0 +S3061C011528009F +S3061C011529009E +S3061C01152A009D +S3061C01152B009C +S3061C01152C009B +S3061C01152D009A +S3061C01152E0099 +S3061C01152F0098 +S3061C0115300097 +S3061C0115310096 +S3061C0115320095 +S3061C0115330094 +S3061C0115340093 +S3061C0115350092 +S3061C0115360091 +S3061C0115370090 +S3061C011538008F +S3061C011539008E +S3061C01153A008D +S3061C01153B008C +S3061C01153C008B +S3061C01153D008A +S3061C01153E0089 +S3061C01153F0088 +S3061C0115400087 +S3061C0115410086 +S3061C0115420085 +S3061C0115430084 +S3061C0115440083 +S3061C0115450082 +S3061C0115460081 +S3061C0115470080 +S3061C011548007F +S3061C011549007E +S3061C01154A007D +S3061C01154B007C +S3061C01154C007B +S3061C01154D007A +S3061C01154E0079 +S3061C01154F0078 +S3061C0115500077 +S3061C0115510076 +S3061C0115520075 +S3061C0115530074 +S3061C0115540073 +S3061C0115550072 +S3061C0115560071 +S3061C0115570070 +S3061C011558006F +S3061C011559006E +S3061C01155A006D +S3061C01155B006C +S3061C01155C006B +S3061C01155D006A +S3061C01155E0069 +S3061C01155F0068 +S3061C0115600067 +S3061C0115610066 +S3061C0115620065 +S3061C0115630064 +S3061C0115640063 +S3061C0115650062 +S3061C0115660061 +S3061C0115670060 +S3061C011568005F +S3061C011569005E +S3061C01156A005D +S3061C01156B005C +S3061C01156C005B +S3061C01156D005A +S3061C01156E0059 +S3061C01156F0058 +S3061C0115700057 +S3061C0115710056 +S3061C0115720055 +S3061C0115730054 +S3061C0115740053 +S3061C0115750052 +S3061C0115760051 +S3061C0115770050 +S3061C011578004F +S3061C011579004E +S3061C01157A004D +S3061C01157B004C +S3061C01157C004B +S3061C01157D004A +S3061C01157E0049 +S3061C01157F0048 +S3061C0115800047 +S3061C0115810046 +S3061C0115820045 +S3061C0115830044 +S3061C0115840043 +S3061C0115850042 +S3061C0115860041 +S3061C0115870040 +S3061C011588003F +S3061C011589003E +S3061C01158A003D +S3061C01158B003C +S3061C01158C003B +S3061C01158D003A +S3061C01158E0039 +S3061C01158F0038 +S3061C0115900037 +S3061C0115910036 +S3061C0115920035 +S3061C0115930034 +S3061C0115940033 +S3061C0115950032 +S3061C0115960031 +S3061C0115970030 +S3061C011598002F +S3061C011599002E +S3061C01159A002D +S3061C01159B002C +S3061C01159C002B +S3061C01159D002A +S3061C01159E0029 +S3061C01159F0028 +S3061C0115A00027 +S3061C0115A10026 +S3061C0115A20025 +S3061C0115A30024 +S3061C0115A40023 +S3061C0115A50022 +S3061C0115A60021 +S3061C0115A70020 +S3061C0115A8001F +S3061C0115A9001E +S3061C0115AA001D +S3061C0115AB001C +S3061C0115AC001B +S3061C0115AD001A +S3061C0115AE0019 +S3061C0115AF0018 +S3061C0115B00017 +S3061C0115B10016 +S3061C0115B20015 +S3061C0115B30014 +S3061C0115B40013 +S3061C0115B50012 +S3061C0115B60011 +S3061C0115B70010 +S3061C0115B8000F +S3061C0115B9000E +S3061C0115BA000D +S3061C0115BB000C +S3061C0115BC000B +S3061C0115BD000A +S3061C0115BE0009 +S3061C0115BF0008 +S3061C0115C00007 +S3061C0115C10006 +S3061C0115C20005 +S3061C0115C30004 +S3061C0115C40003 +S3061C0115C50002 +S3061C0115C60001 +S3061C0115C70000 +S3061C0115C800FF +S3061C0115C900FE +S3061C0115CA00FD +S3061C0115CB00FC +S3061C0115CC00FB +S3061C0115CD00FA +S3061C0115CE00F9 +S3061C0115CF00F8 +S3061C0115D000F7 +S3061C0115D100F6 +S3061C0115D200F5 +S3061C0115D300F4 +S3061C0115D400F3 +S3061C0115D500F2 +S3061C0115D600F1 +S3061C0115D700F0 +S3061C0115D800EF +S3061C0115D900EE +S3061C0115DA00ED +S3061C0115DB00EC +S3061C0115DC00EB +S3061C0115DD00EA +S3061C0115DE00E9 +S3061C0115DF00E8 +S3061C0115E000E7 +S3061C0115E100E6 +S3061C0115E200E5 +S3061C0115E300E4 +S3061C0115E400E3 +S3061C0115E500E2 +S3061C0115E600E1 +S3061C0115E700E0 +S3061C0115E800DF +S3061C0115E900DE +S3061C0115EA00DD +S3061C0115EB00DC +S3061C0115EC00DB +S3061C0115ED00DA +S3061C0115EE00D9 +S3061C0115EF00D8 +S3061C0115F000D7 +S3061C0115F100D6 +S3061C0115F200D5 +S3061C0115F300D4 +S3061C0115F400D3 +S3061C0115F500D2 +S3061C0115F600D1 +S3061C0115F700D0 +S3061C0115F800CF +S3061C0115F900CE +S3061C0115FA00CD +S3061C0115FB00CC +S3061C0115FC00CB +S3061C0115FD00CA +S3061C0115FE00C9 +S3061C0115FF00C8 +S3061C01160000C6 +S3061C01160100C5 +S3061C01160200C4 +S3061C01160300C3 +S3061C01160400C2 +S3061C01160500C1 +S3061C01160600C0 +S3061C01160700BF +S3061C01160800BE +S3061C01160900BD +S3061C01160A00BC +S3061C01160B00BB +S3061C01160C00BA +S3061C01160D00B9 +S3061C01160E00B8 +S3061C01160F00B7 +S3061C01161000B6 +S3061C01161100B5 +S3061C01161200B4 +S3061C01161300B3 +S3061C01161400B2 +S3061C01161500B1 +S3061C01161600B0 +S3061C01161700AF +S3061C01161800AE +S3061C01161900AD +S3061C01161A00AC +S3061C01161B00AB +S3061C01161C00AA +S3061C01161D00A9 +S3061C01161E00A8 +S3061C01161F00A7 +S3061C01162000A6 +S3061C01162100A5 +S3061C01162200A4 +S3061C01162300A3 +S3061C01162400A2 +S3061C01162500A1 +S3061C01162600A0 +S3061C011627009F +S3061C011628009E +S3061C011629009D +S3061C01162A009C +S3061C01162B009B +S3061C01162C009A +S3061C01162D0099 +S3061C01162E0098 +S3061C01162F0097 +S3061C0116300096 +S3061C0116310095 +S3061C0116320094 +S3061C0116330093 +S3061C0116340092 +S3061C0116350091 +S3061C0116360090 +S3061C011637008F +S3061C011638008E +S3061C011639008D +S3061C01163A008C +S3061C01163B008B +S3061C01163C008A +S3061C01163D0089 +S3061C01163E0088 +S3061C01163F0087 +S3061C0116400086 +S3061C0116410085 +S3061C0116420084 +S3061C0116430083 +S3061C0116440082 +S3061C0116450081 +S3061C0116460080 +S3061C011647007F +S3061C011648007E +S3061C011649007D +S3061C01164A007C +S3061C01164B007B +S3061C01164C007A +S3061C01164D0079 +S3061C01164E0078 +S3061C01164F0077 +S3061C0116500076 +S3061C0116510075 +S3061C0116520074 +S3061C0116530073 +S3061C0116540072 +S3061C0116550071 +S3061C0116560070 +S3061C011657006F +S3061C011658006E +S3061C011659006D +S3061C01165A006C +S3061C01165B006B +S3061C01165C006A +S3061C01165D0069 +S3061C01165E0068 +S3061C01165F0067 +S3061C0116600066 +S3061C0116610065 +S3061C0116620064 +S3061C0116630063 +S3061C0116640062 +S3061C0116650061 +S3061C0116660060 +S3061C011667005F +S3061C011668005E +S3061C011669005D +S3061C01166A005C +S3061C01166B005B +S3061C01166C005A +S3061C01166D0059 +S3061C01166E0058 +S3061C01166F0057 +S3061C0116700056 +S3061C0116710055 +S3061C0116720054 +S3061C0116730053 +S3061C0116740052 +S3061C0116750051 +S3061C0116760050 +S3061C011677004F +S3061C011678004E +S3061C011679004D +S3061C01167A004C +S3061C01167B004B +S3061C01167C004A +S3061C01167D0049 +S3061C01167E0048 +S3061C01167F0047 +S3061C0116800046 +S3061C0116810045 +S3061C0116820044 +S3061C0116830043 +S3061C0116840042 +S3061C0116850041 +S3061C0116860040 +S3061C011687003F +S3061C011688003E +S3061C011689003D +S3061C01168A003C +S3061C01168B003B +S3061C01168C003A +S3061C01168D0039 +S3061C01168E0038 +S3061C01168F0037 +S3061C0116900036 +S3061C0116910035 +S3061C0116920034 +S3061C0116930033 +S3061C0116940032 +S3061C0116950031 +S3061C0116960030 +S3061C011697002F +S3061C011698002E +S3061C011699002D +S3061C01169A002C +S3061C01169B002B +S3061C01169C002A +S3061C01169D0029 +S3061C01169E0028 +S3061C01169F0027 +S3061C0116A00026 +S3061C0116A10025 +S3061C0116A20024 +S3061C0116A30023 +S3061C0116A40022 +S3061C0116A50021 +S3061C0116A60020 +S3061C0116A7001F +S3061C0116A8001E +S3061C0116A9001D +S3061C0116AA001C +S3061C0116AB001B +S3061C0116AC001A +S3061C0116AD0019 +S3061C0116AE0018 +S3061C0116AF0017 +S3061C0116B00016 +S3061C0116B10015 +S3061C0116B20014 +S3061C0116B30013 +S3061C0116B40012 +S3061C0116B50011 +S3061C0116B60010 +S3061C0116B7000F +S3061C0116B8000E +S3061C0116B9000D +S3061C0116BA000C +S3061C0116BB000B +S3061C0116BC000A +S3061C0116BD0009 +S3061C0116BE0008 +S3061C0116BF0007 +S3061C0116C00006 +S3061C0116C10005 +S3061C0116C20004 +S3061C0116C30003 +S3061C0116C40002 +S3061C0116C50001 +S3061C0116C60000 +S3061C0116C700FF +S3061C0116C800FE +S3061C0116C900FD +S3061C0116CA00FC +S3061C0116CB00FB +S3061C0116CC00FA +S3061C0116CD00F9 +S3061C0116CE00F8 +S3061C0116CF00F7 +S3061C0116D000F6 +S3061C0116D100F5 +S3061C0116D200F4 +S3061C0116D300F3 +S3061C0116D400F2 +S3061C0116D500F1 +S3061C0116D600F0 +S3061C0116D700EF +S3061C0116D800EE +S3061C0116D900ED +S3061C0116DA00EC +S3061C0116DB00EB +S3061C0116DC00EA +S3061C0116DD00E9 +S3061C0116DE00E8 +S3061C0116DF00E7 +S3061C0116E000E6 +S3061C0116E100E5 +S3061C0116E200E4 +S3061C0116E300E3 +S3061C0116E400E2 +S3061C0116E500E1 +S3061C0116E600E0 +S3061C0116E700DF +S3061C0116E800DE +S3061C0116E900DD +S3061C0116EA00DC +S3061C0116EB00DB +S3061C0116EC00DA +S3061C0116ED00D9 +S3061C0116EE00D8 +S3061C0116EF00D7 +S3061C0116F000D6 +S3061C0116F100D5 +S3061C0116F200D4 +S3061C0116F300D3 +S3061C0116F400D2 +S3061C0116F500D1 +S3061C0116F600D0 +S3061C0116F700CF +S3061C0116F800CE +S3061C0116F900CD +S3061C0116FA00CC +S3061C0116FB00CB +S3061C0116FC00CA +S3061C0116FD00C9 +S3061C0116FE00C8 +S3061C0116FF00C7 +S3061C01170000C5 +S3061C01170100C4 +S3061C01170200C3 +S3061C01170300C2 +S3061C01170400C1 +S3061C01170500C0 +S3061C01170600BF +S3061C01170700BE +S3061C01170800BD +S3061C01170900BC +S3061C01170A00BB +S3061C01170B00BA +S3061C01170C00B9 +S3061C01170D00B8 +S3061C01170E00B7 +S3061C01170F00B6 +S3061C01171000B5 +S3061C01171100B4 +S3061C01171200B3 +S3061C01171300B2 +S3061C01171400B1 +S3061C01171500B0 +S3061C01171600AF +S3061C01171700AE +S3061C01171800AD +S3061C01171900AC +S3061C01171A00AB +S3061C01171B00AA +S3061C01171C00A9 +S3061C01171D00A8 +S3061C01171E00A7 +S3061C01171F00A6 +S3061C01172000A5 +S3061C01172100A4 +S3061C01172200A3 +S3061C01172300A2 +S3061C01172400A1 +S3061C01172500A0 +S3061C011726009F +S3061C011727009E +S3061C011728009D +S3061C011729009C +S3061C01172A009B +S3061C01172B009A +S3061C01172C0099 +S3061C01172D0098 +S3061C01172E0097 +S3061C01172F0096 +S3061C0117300095 +S3061C0117310094 +S3061C0117320093 +S3061C0117330092 +S3061C0117340091 +S3061C0117350090 +S3061C011736008F +S3061C011737008E +S3061C011738008D +S3061C011739008C +S3061C01173A008B +S3061C01173B008A +S3061C01173C0089 +S3061C01173D0088 +S3061C01173E0087 +S3061C01173F0086 +S3061C0117400085 +S3061C0117410084 +S3061C0117420083 +S3061C0117430082 +S3061C0117440081 +S3061C0117450080 +S3061C011746007F +S3061C011747007E +S3061C011748007D +S3061C011749007C +S3061C01174A007B +S3061C01174B007A +S3061C01174C0079 +S3061C01174D0078 +S3061C01174E0077 +S3061C01174F0076 +S3061C0117500075 +S3061C0117510074 +S3061C0117520073 +S3061C0117530072 +S3061C0117540071 +S3061C0117550070 +S3061C011756006F +S3061C011757006E +S3061C011758006D +S3061C011759006C +S3061C01175A006B +S3061C01175B006A +S3061C01175C0069 +S3061C01175D0068 +S3061C01175E0067 +S3061C01175F0066 +S3061C0117600065 +S3061C0117610064 +S3061C0117620063 +S3061C0117630062 +S3061C0117640061 +S3061C0117650060 +S3061C011766005F +S3061C011767005E +S3061C011768005D +S3061C011769005C +S3061C01176A005B +S3061C01176B005A +S3061C01176C0059 +S3061C01176D0058 +S3061C01176E0057 +S3061C01176F0056 +S3061C0117700055 +S3061C0117710054 +S3061C0117720053 +S3061C0117730052 +S3061C0117740051 +S3061C0117750050 +S3061C011776004F +S3061C011777004E +S3061C011778004D +S3061C011779004C +S3061C01177A004B +S3061C01177B004A +S3061C01177C0049 +S3061C01177D0048 +S3061C01177E0047 +S3061C01177F0046 +S3061C0117800045 +S3061C0117810044 +S3061C0117820043 +S3061C0117830042 +S3061C0117840041 +S3061C0117850040 +S3061C011786003F +S3061C011787003E +S3061C011788003D +S3061C011789003C +S3061C01178A003B +S3061C01178B003A +S3061C01178C0039 +S3061C01178D0038 +S3061C01178E0037 +S3061C01178F0036 +S3061C0117900035 +S3061C0117910034 +S3061C0117920033 +S3061C0117930032 +S3061C0117940031 +S3061C0117950030 +S3061C011796002F +S3061C011797002E +S3061C011798002D +S3061C011799002C +S3061C01179A002B +S3061C01179B002A +S3061C01179C0029 +S3061C01179D0028 +S3061C01179E0027 +S3061C01179F0026 +S3061C0117A00025 +S3061C0117A10024 +S3061C0117A20023 +S3061C0117A30022 +S3061C0117A40021 +S3061C0117A50020 +S3061C0117A6001F +S3061C0117A7001E +S3061C0117A8001D +S3061C0117A9001C +S3061C0117AA001B +S3061C0117AB001A +S3061C0117AC0019 +S3061C0117AD0018 +S3061C0117AE0017 +S3061C0117AF0016 +S3061C0117B00015 +S3061C0117B10014 +S3061C0117B20013 +S3061C0117B30012 +S3061C0117B40011 +S3061C0117B50010 +S3061C0117B6000F +S3061C0117B7000E +S3061C0117B8000D +S3061C0117B9000C +S3061C0117BA000B +S3061C0117BB000A +S3061C0117BC0009 +S3061C0117BD0008 +S3061C0117BE0007 +S3061C0117BF0006 +S3061C0117C00005 +S3061C0117C10004 +S3061C0117C20003 +S3061C0117C30002 +S3061C0117C40001 +S3061C0117C50000 +S3061C0117C600FF +S3061C0117C700FE +S3061C0117C800FD +S3061C0117C900FC +S3061C0117CA00FB +S3061C0117CB00FA +S3061C0117CC00F9 +S3061C0117CD00F8 +S3061C0117CE00F7 +S3061C0117CF00F6 +S3061C0117D000F5 +S3061C0117D100F4 +S3061C0117D200F3 +S3061C0117D300F2 +S3061C0117D400F1 +S3061C0117D500F0 +S3061C0117D600EF +S3061C0117D700EE +S3061C0117D800ED +S3061C0117D900EC +S3061C0117DA00EB +S3061C0117DB00EA +S3061C0117DC00E9 +S3061C0117DD00E8 +S3061C0117DE00E7 +S3061C0117DF00E6 +S3061C0117E000E5 +S3061C0117E100E4 +S3061C0117E200E3 +S3061C0117E300E2 +S3061C0117E400E1 +S3061C0117E500E0 +S3061C0117E600DF +S3061C0117E700DE +S3061C0117E800DD +S3061C0117E900DC +S3061C0117EA00DB +S3061C0117EB00DA +S3061C0117EC00D9 +S3061C0117ED00D8 +S3061C0117EE00D7 +S3061C0117EF00D6 +S3061C0117F000D5 +S3061C0117F100D4 +S3061C0117F200D3 +S3061C0117F300D2 +S3061C0117F400D1 +S3061C0117F500D0 +S3061C0117F600CF +S3061C0117F700CE +S3061C0117F800CD +S3061C0117F900CC +S3061C0117FA00CB +S3061C0117FB00CA +S3061C0117FC00C9 +S3061C0117FD00C8 +S3061C0117FE00C7 +S3061C0117FF00C6 +S3061C01180000C4 +S3061C01180100C3 +S3061C01180200C2 +S3061C01180300C1 +S3061C01180400C0 +S3061C01180500BF +S3061C01180600BE +S3061C01180700BD +S3061C01180800BC +S3061C01180900BB +S3061C01180A00BA +S3061C01180B00B9 +S3061C01180C00B8 +S3061C01180D00B7 +S3061C01180E00B6 +S3061C01180F00B5 +S3061C01181000B4 +S3061C01181100B3 +S3061C01181200B2 +S3061C01181300B1 +S3061C01181400B0 +S3061C01181500AF +S3061C01181600AE +S3061C01181700AD +S3061C01181800AC +S3061C01181900AB +S3061C01181A00AA +S3061C01181B00A9 +S3061C01181C00A8 +S3061C01181D00A7 +S3061C01181E00A6 +S3061C01181F00A5 +S3061C01182000A4 +S3061C01182100A3 +S3061C01182200A2 +S3061C01182300A1 +S3061C01182400A0 +S3061C011825009F +S3061C011826009E +S3061C011827009D +S3061C011828009C +S3061C011829009B +S3061C01182A009A +S3061C01182B0099 +S3061C01182C0098 +S3061C01182D0097 +S3061C01182E0096 +S3061C01182F0095 +S3061C0118300094 +S3061C0118310093 +S3061C0118320092 +S3061C0118330091 +S3061C0118340090 +S3061C011835008F +S3061C011836008E +S3061C011837008D +S3061C011838008C +S3061C011839008B +S3061C01183A008A +S3061C01183B0089 +S3061C01183C0088 +S3061C01183D0087 +S3061C01183E0086 +S3061C01183F0085 +S3061C0118400084 +S3061C0118410083 +S3061C0118420082 +S3061C0118430081 +S3061C0118440080 +S3061C011845007F +S3061C011846007E +S3061C011847007D +S3061C011848007C +S3061C011849007B +S3061C01184A007A +S3061C01184B0079 +S3061C01184C0078 +S3061C01184D0077 +S3061C01184E0076 +S3061C01184F0075 +S3061C0118500074 +S3061C0118510073 +S3061C0118520072 +S3061C0118530071 +S3061C0118540070 +S3061C011855006F +S3061C011856006E +S3061C011857006D +S3061C011858006C +S3061C011859006B +S3061C01185A006A +S3061C01185B0069 +S3061C01185C0068 +S3061C01185D0067 +S3061C01185E0066 +S3061C01185F0065 +S3061C0118600064 +S3061C0118610063 +S3061C0118620062 +S3061C0118630061 +S3061C0118640060 +S3061C011865005F +S3061C011866005E +S3061C011867005D +S3061C011868005C +S3061C011869005B +S3061C01186A005A +S3061C01186B0059 +S3061C01186C0058 +S3061C01186D0057 +S3061C01186E0056 +S3061C01186F0055 +S3061C0118700054 +S3061C0118710053 +S3061C0118720052 +S3061C0118730051 +S3061C0118740050 +S3061C011875004F +S3061C011876004E +S3061C011877004D +S3061C011878004C +S3061C011879004B +S3061C01187A004A +S3061C01187B0049 +S3061C01187C0048 +S3061C01187D0047 +S3061C01187E0046 +S3061C01187F0045 +S3061C0118800044 +S3061C0118810043 +S3061C0118820042 +S3061C0118830041 +S3061C0118840040 +S3061C011885003F +S3061C011886003E +S3061C011887003D +S3061C011888003C +S3061C011889003B +S3061C01188A003A +S3061C01188B0039 +S3061C01188C0038 +S3061C01188D0037 +S3061C01188E0036 +S3061C01188F0035 +S3061C0118900034 +S3061C0118910033 +S3061C0118920032 +S3061C0118930031 +S3061C0118940030 +S3061C011895002F +S3061C011896002E +S3061C011897002D +S3061C011898002C +S3061C011899002B +S3061C01189A002A +S3061C01189B0029 +S3061C01189C0028 +S3061C01189D0027 +S3061C01189E0026 +S3061C01189F0025 +S3061C0118A00024 +S3061C0118A10023 +S3061C0118A20022 +S3061C0118A30021 +S3061C0118A40020 +S3061C0118A5001F +S3061C0118A6001E +S3061C0118A7001D +S3061C0118A8001C +S3061C0118A9001B +S3061C0118AA001A +S3061C0118AB0019 +S3061C0118AC0018 +S3061C0118AD0017 +S3061C0118AE0016 +S3061C0118AF0015 +S3061C0118B00014 +S3061C0118B10013 +S3061C0118B20012 +S3061C0118B30011 +S3061C0118B40010 +S3061C0118B5000F +S3061C0118B6000E +S3061C0118B7000D +S3061C0118B8000C +S3061C0118B9000B +S3061C0118BA000A +S3061C0118BB0009 +S3061C0118BC0008 +S3061C0118BD0007 +S3061C0118BE0006 +S3061C0118BF0005 +S3061C0118C00004 +S3061C0118C10003 +S3061C0118C20002 +S3061C0118C30001 +S3061C0118C40000 +S3061C0118C500FF +S3061C0118C600FE +S3061C0118C700FD +S3061C0118C800FC +S3061C0118C900FB +S3061C0118CA00FA +S3061C0118CB00F9 +S3061C0118CC00F8 +S3061C0118CD00F7 +S3061C0118CE00F6 +S3061C0118CF00F5 +S3061C0118D000F4 +S3061C0118D100F3 +S3061C0118D200F2 +S3061C0118D300F1 +S3061C0118D400F0 +S3061C0118D500EF +S3061C0118D600EE +S3061C0118D700ED +S3061C0118D800EC +S3061C0118D900EB +S3061C0118DA00EA +S3061C0118DB00E9 +S3061C0118DC00E8 +S3061C0118DD00E7 +S3061C0118DE00E6 +S3061C0118DF00E5 +S3061C0118E000E4 +S3061C0118E100E3 +S3061C0118E200E2 +S3061C0118E300E1 +S3061C0118E400E0 +S3061C0118E500DF +S3061C0118E600DE +S3061C0118E700DD +S3061C0118E800DC +S3061C0118E900DB +S3061C0118EA00DA +S3061C0118EB00D9 +S3061C0118EC00D8 +S3061C0118ED00D7 +S3061C0118EE00D6 +S3061C0118EF00D5 +S3061C0118F000D4 +S3061C0118F100D3 +S3061C0118F200D2 +S3061C0118F300D1 +S3061C0118F400D0 +S3061C0118F500CF +S3061C0118F600CE +S3061C0118F700CD +S3061C0118F800CC +S3061C0118F900CB +S3061C0118FA00CA +S3061C0118FB00C9 +S3061C0118FC00C8 +S3061C0118FD00C7 +S3061C0118FE00C6 +S3061C0118FF00C5 +S3061C01190000C3 +S3061C01190100C2 +S3061C01190200C1 +S3061C01190300C0 +S3061C01190400BF +S3061C01190500BE +S3061C01190600BD +S3061C01190700BC +S3061C01190800BB +S3061C01190900BA +S3061C01190A00B9 +S3061C01190B00B8 +S3061C01190C00B7 +S3061C01190D00B6 +S3061C01190E00B5 +S3061C01190F00B4 +S3061C01191000B3 +S3061C01191100B2 +S3061C01191200B1 +S3061C01191300B0 +S3061C01191400AF +S3061C01191500AE +S3061C01191600AD +S3061C01191700AC +S3061C01191800AB +S3061C01191900AA +S3061C01191A00A9 +S3061C01191B00A8 +S3061C01191C00A7 +S3061C01191D00A6 +S3061C01191E00A5 +S3061C01191F00A4 +S3061C01192000A3 +S3061C01192100A2 +S3061C01192200A1 +S3061C01192300A0 +S3061C011924009F +S3061C011925009E +S3061C011926009D +S3061C011927009C +S3061C011928009B +S3061C011929009A +S3061C01192A0099 +S3061C01192B0098 +S3061C01192C0097 +S3061C01192D0096 +S3061C01192E0095 +S3061C01192F0094 +S3061C0119300093 +S3061C0119310092 +S3061C0119320091 +S3061C0119330090 +S3061C011934008F +S3061C011935008E +S3061C011936008D +S3061C011937008C +S3061C011938008B +S3061C011939008A +S3061C01193A0089 +S3061C01193B0088 +S3061C01193C0087 +S3061C01193D0086 +S3061C01193E0085 +S3061C01193F0084 +S3061C0119400083 +S3061C0119410082 +S3061C0119420081 +S3061C0119430080 +S3061C011944007F +S3061C011945007E +S3061C011946007D +S3061C011947007C +S3061C011948007B +S3061C011949007A +S3061C01194A0079 +S3061C01194B0078 +S3061C01194C0077 +S3061C01194D0076 +S3061C01194E0075 +S3061C01194F0074 +S3061C0119500073 +S3061C0119510072 +S3061C0119520071 +S3061C0119530070 +S3061C011954006F +S3061C011955006E +S3061C011956006D +S3061C011957006C +S3061C011958006B +S3061C011959006A +S3061C01195A0069 +S3061C01195B0068 +S3061C01195C0067 +S3061C01195D0066 +S3061C01195E0065 +S3061C01195F0064 +S3061C0119600063 +S3061C0119610062 +S3061C0119620061 +S3061C0119630060 +S3061C011964005F +S3061C011965005E +S3061C011966005D +S3061C011967005C +S3061C011968005B +S3061C011969005A +S3061C01196A0059 +S3061C01196B0058 +S3061C01196C0057 +S3061C01196D0056 +S3061C01196E0055 +S3061C01196F0054 +S3061C0119700053 +S3061C0119710052 +S3061C0119720051 +S3061C0119730050 +S3061C011974004F +S3061C011975004E +S3061C011976004D +S3061C011977004C +S3061C011978004B +S3061C011979004A +S3061C01197A0049 +S3061C01197B0048 +S3061C01197C0047 +S3061C01197D0046 +S3061C01197E0045 +S3061C01197F0044 +S3061C0119800043 +S3061C0119810042 +S3061C0119820041 +S3061C0119830040 +S3061C011984003F +S3061C011985003E +S3061C011986003D +S3061C011987003C +S3061C011988003B +S3061C011989003A +S3061C01198A0039 +S3061C01198B0038 +S3061C01198C0037 +S3061C01198D0036 +S3061C01198E0035 +S3061C01198F0034 +S3061C0119900033 +S3061C0119910032 +S3061C0119920031 +S3061C0119930030 +S3061C011994002F +S3061C011995002E +S3061C011996002D +S3061C011997002C +S3061C011998002B +S3061C011999002A +S3061C01199A0029 +S3061C01199B0028 +S3061C01199C0027 +S3061C01199D0026 +S3061C01199E0025 +S3061C01199F0024 +S3061C0119A00023 +S3061C0119A10022 +S3061C0119A20021 +S3061C0119A30020 +S3061C0119A4001F +S3061C0119A5001E +S3061C0119A6001D +S3061C0119A7001C +S3061C0119A8001B +S3061C0119A9001A +S3061C0119AA0019 +S3061C0119AB0018 +S3061C0119AC0017 +S3061C0119AD0016 +S3061C0119AE0015 +S3061C0119AF0014 +S3061C0119B00013 +S3061C0119B10012 +S3061C0119B20011 +S3061C0119B30010 +S3061C0119B4000F +S3061C0119B5000E +S3061C0119B6000D +S3061C0119B7000C +S3061C0119B8000B +S3061C0119B9000A +S3061C0119BA0009 +S3061C0119BB0008 +S3061C0119BC0007 +S3061C0119BD0006 +S3061C0119BE0005 +S3061C0119BF0004 +S3061C0119C00003 +S3061C0119C10002 +S3061C0119C20001 +S3061C0119C30000 +S3061C0119C400FF +S3061C0119C500FE +S3061C0119C600FD +S3061C0119C700FC +S3061C0119C800FB +S3061C0119C900FA +S3061C0119CA00F9 +S3061C0119CB00F8 +S3061C0119CC00F7 +S3061C0119CD00F6 +S3061C0119CE00F5 +S3061C0119CF00F4 +S3061C0119D000F3 +S3061C0119D100F2 +S3061C0119D200F1 +S3061C0119D300F0 +S3061C0119D400EF +S3061C0119D500EE +S3061C0119D600ED +S3061C0119D700EC +S3061C0119D800EB +S3061C0119D900EA +S3061C0119DA00E9 +S3061C0119DB00E8 +S3061C0119DC00E7 +S3061C0119DD00E6 +S3061C0119DE00E5 +S3061C0119DF00E4 +S3061C0119E000E3 +S3061C0119E100E2 +S3061C0119E200E1 +S3061C0119E300E0 +S3061C0119E400DF +S3061C0119E500DE +S3061C0119E600DD +S3061C0119E700DC +S3061C0119E800DB +S3061C0119E900DA +S3061C0119EA00D9 +S3061C0119EB00D8 +S3061C0119EC00D7 +S3061C0119ED00D6 +S3061C0119EE00D5 +S3061C0119EF00D4 +S3061C0119F000D3 +S3061C0119F100D2 +S3061C0119F200D1 +S3061C0119F300D0 +S3061C0119F400CF +S3061C0119F500CE +S3061C0119F600CD +S3061C0119F700CC +S3061C0119F800CB +S3061C0119F900CA +S3061C0119FA00C9 +S3061C0119FB00C8 +S3061C0119FC00C7 +S3061C0119FD00C6 +S3061C0119FE00C5 +S3061C0119FF00C4 +S3061C011A0000C2 +S3061C011A0100C1 +S3061C011A0200C0 +S3061C011A0300BF +S3061C011A0400BE +S3061C011A0500BD +S3061C011A0600BC +S3061C011A0700BB +S3061C011A0800BA +S3061C011A0900B9 +S3061C011A0A00B8 +S3061C011A0B00B7 +S3061C011A0C00B6 +S3061C011A0D00B5 +S3061C011A0E00B4 +S3061C011A0F00B3 +S3061C011A1000B2 +S3061C011A1100B1 +S3061C011A1200B0 +S3061C011A1300AF +S3061C011A1400AE +S3061C011A1500AD +S3061C011A1600AC +S3061C011A1700AB +S3061C011A1800AA +S3061C011A1900A9 +S3061C011A1A00A8 +S3061C011A1B00A7 +S3061C011A1C00A6 +S3061C011A1D00A5 +S3061C011A1E00A4 +S3061C011A1F00A3 +S3061C011A2000A2 +S3061C011A2100A1 +S3061C011A2200A0 +S3061C011A23009F +S3061C011A24009E +S3061C011A25009D +S3061C011A26009C +S3061C011A27009B +S3061C011A28009A +S3061C011A290099 +S3061C011A2A0098 +S3061C011A2B0097 +S3061C011A2C0096 +S3061C011A2D0095 +S3061C011A2E0094 +S3061C011A2F0093 +S3061C011A300092 +S3061C011A310091 +S3061C011A320090 +S3061C011A33008F +S3061C011A34008E +S3061C011A35008D +S3061C011A36008C +S3061C011A37008B +S3061C011A38008A +S3061C011A390089 +S3061C011A3A0088 +S3061C011A3B0087 +S3061C011A3C0086 +S3061C011A3D0085 +S3061C011A3E0084 +S3061C011A3F0083 +S3061C011A400082 +S3061C011A410081 +S3061C011A420080 +S3061C011A43007F +S3061C011A44007E +S3061C011A45007D +S3061C011A46007C +S3061C011A47007B +S3061C011A48007A +S3061C011A490079 +S3061C011A4A0078 +S3061C011A4B0077 +S3061C011A4C0076 +S3061C011A4D0075 +S3061C011A4E0074 +S3061C011A4F0073 +S3061C011A500072 +S3061C011A510071 +S3061C011A520070 +S3061C011A53006F +S3061C011A54006E +S3061C011A55006D +S3061C011A56006C +S3061C011A57006B +S3061C011A58006A +S3061C011A590069 +S3061C011A5A0068 +S3061C011A5B0067 +S3061C011A5C0066 +S3061C011A5D0065 +S3061C011A5E0064 +S3061C011A5F0063 +S3061C011A600062 +S3061C011A610061 +S3061C011A620060 +S3061C011A63005F +S3061C011A64005E +S3061C011A65005D +S3061C011A66005C +S3061C011A67005B +S3061C011A68005A +S3061C011A690059 +S3061C011A6A0058 +S3061C011A6B0057 +S3061C011A6C0056 +S3061C011A6D0055 +S3061C011A6E0054 +S3061C011A6F0053 +S3061C011A700052 +S3061C011A710051 +S3061C011A720050 +S3061C011A73004F +S3061C011A74004E +S3061C011A75004D +S3061C011A76004C +S3061C011A77004B +S3061C011A78004A +S3061C011A790049 +S3061C011A7A0048 +S3061C011A7B0047 +S3061C011A7C0046 +S3061C011A7D0045 +S3061C011A7E0044 +S3061C011A7F0043 +S3061C011A800042 +S3061C011A810041 +S3061C011A820040 +S3061C011A83003F +S3061C011A84003E +S3061C011A85003D +S3061C011A86003C +S3061C011A87003B +S3061C011A88003A +S3061C011A890039 +S3061C011A8A0038 +S3061C011A8B0037 +S3061C011A8C0036 +S3061C011A8D0035 +S3061C011A8E0034 +S3061C011A8F0033 +S3061C011A900032 +S3061C011A910031 +S3061C011A920030 +S3061C011A93002F +S3061C011A94002E +S3061C011A95002D +S3061C011A96002C +S3061C011A97002B +S3061C011A98002A +S3061C011A990029 +S3061C011A9A0028 +S3061C011A9B0027 +S3061C011A9C0026 +S3061C011A9D0025 +S3061C011A9E0024 +S3061C011A9F0023 +S3061C011AA00022 +S3061C011AA10021 +S3061C011AA20020 +S3061C011AA3001F +S3061C011AA4001E +S3061C011AA5001D +S3061C011AA6001C +S3061C011AA7001B +S3061C011AA8001A +S3061C011AA90019 +S3061C011AAA0018 +S3061C011AAB0017 +S3061C011AAC0016 +S3061C011AAD0015 +S3061C011AAE0014 +S3061C011AAF0013 +S3061C011AB00012 +S3061C011AB10011 +S3061C011AB20010 +S3061C011AB3000F +S3061C011AB4000E +S3061C011AB5000D +S3061C011AB6000C +S3061C011AB7000B +S3061C011AB8000A +S3061C011AB90009 +S3061C011ABA0008 +S3061C011ABB0007 +S3061C011ABC0006 +S3061C011ABD0005 +S3061C011ABE0004 +S3061C011ABF0003 +S3061C011AC00002 +S3061C011AC10001 +S3061C011AC20000 +S3061C011AC300FF +S3061C011AC400FE +S3061C011AC500FD +S3061C011AC600FC +S3061C011AC700FB +S3061C011AC800FA +S3061C011AC900F9 +S3061C011ACA00F8 +S3061C011ACB00F7 +S3061C011ACC00F6 +S3061C011ACD00F5 +S3061C011ACE00F4 +S3061C011ACF00F3 +S3061C011AD000F2 +S3061C011AD100F1 +S3061C011AD200F0 +S3061C011AD300EF +S3061C011AD400EE +S3061C011AD500ED +S3061C011AD600EC +S3061C011AD700EB +S3061C011AD800EA +S3061C011AD900E9 +S3061C011ADA00E8 +S3061C011ADB00E7 +S3061C011ADC00E6 +S3061C011ADD00E5 +S3061C011ADE00E4 +S3061C011ADF00E3 +S3061C011AE000E2 +S3061C011AE100E1 +S3061C011AE200E0 +S3061C011AE300DF +S3061C011AE400DE +S3061C011AE500DD +S3061C011AE600DC +S3061C011AE700DB +S3061C011AE800DA +S3061C011AE900D9 +S3061C011AEA00D8 +S3061C011AEB00D7 +S3061C011AEC00D6 +S3061C011AED00D5 +S3061C011AEE00D4 +S3061C011AEF00D3 +S3061C011AF000D2 +S3061C011AF100D1 +S3061C011AF200D0 +S3061C011AF300CF +S3061C011AF400CE +S3061C011AF500CD +S3061C011AF600CC +S3061C011AF700CB +S3061C011AF800CA +S3061C011AF900C9 +S3061C011AFA00C8 +S3061C011AFB00C7 +S3061C011AFC00C6 +S3061C011AFD00C5 +S3061C011AFE00C4 +S3061C011AFF00C3 +S3061C011B0000C1 +S3061C011B0100C0 +S3061C011B0200BF +S3061C011B0300BE +S3061C011B0400BD +S3061C011B0500BC +S3061C011B0600BB +S3061C011B0700BA +S3061C011B0800B9 +S3061C011B0900B8 +S3061C011B0A00B7 +S3061C011B0B00B6 +S3061C011B0C00B5 +S3061C011B0D00B4 +S3061C011B0E00B3 +S3061C011B0F00B2 +S3061C011B1000B1 +S3061C011B1100B0 +S3061C011B1200AF +S3061C011B1300AE +S3061C011B1400AD +S3061C011B1500AC +S3061C011B1600AB +S3061C011B1700AA +S3061C011B1800A9 +S3061C011B1900A8 +S3061C011B1A00A7 +S3061C011B1B00A6 +S3061C011B1C00A5 +S3061C011B1D00A4 +S3061C011B1E00A3 +S3061C011B1F00A2 +S3061C011B2000A1 +S3061C011B2100A0 +S3061C011B22009F +S3061C011B23009E +S3061C011B24009D +S3061C011B25009C +S3061C011B26009B +S3061C011B27009A +S3061C011B280099 +S3061C011B290098 +S3061C011B2A0097 +S3061C011B2B0096 +S3061C011B2C0095 +S3061C011B2D0094 +S3061C011B2E0093 +S3061C011B2F0092 +S3061C011B300091 +S3061C011B310090 +S3061C011B32008F +S3061C011B33008E +S3061C011B34008D +S3061C011B35008C +S3061C011B36008B +S3061C011B37008A +S3061C011B380089 +S3061C011B390088 +S3061C011B3A0087 +S3061C011B3B0086 +S3061C011B3C0085 +S3061C011B3D0084 +S3061C011B3E0083 +S3061C011B3F0082 +S3061C011B400081 +S3061C011B410080 +S3061C011B42007F +S3061C011B43007E +S3061C011B44007D +S3061C011B45007C +S3061C011B46007B +S3061C011B47007A +S3061C011B480079 +S3061C011B490078 +S3061C011B4A0077 +S3061C011B4B0076 +S3061C011B4C0075 +S3061C011B4D0074 +S3061C011B4E0073 +S3061C011B4F0072 +S3061C011B500071 +S3061C011B510070 +S3061C011B52006F +S3061C011B53006E +S3061C011B54006D +S3061C011B55006C +S3061C011B56006B +S3061C011B57006A +S3061C011B580069 +S3061C011B590068 +S3061C011B5A0067 +S3061C011B5B0066 +S3061C011B5C0065 +S3061C011B5D0064 +S3061C011B5E0063 +S3061C011B5F0062 +S3061C011B600061 +S3061C011B610060 +S3061C011B62005F +S3061C011B63005E +S3061C011B64005D +S3061C011B65005C +S3061C011B66005B +S3061C011B67005A +S3061C011B680059 +S3061C011B690058 +S3061C011B6A0057 +S3061C011B6B0056 +S3061C011B6C0055 +S3061C011B6D0054 +S3061C011B6E0053 +S3061C011B6F0052 +S3061C011B700051 +S3061C011B710050 +S3061C011B72004F +S3061C011B73004E +S3061C011B74004D +S3061C011B75004C +S3061C011B76004B +S3061C011B77004A +S3061C011B780049 +S3061C011B790048 +S3061C011B7A0047 +S3061C011B7B0046 +S3061C011B7C0045 +S3061C011B7D0044 +S3061C011B7E0043 +S3061C011B7F0042 +S3061C011B800041 +S3061C011B810040 +S3061C011B82003F +S3061C011B83003E +S3061C011B84003D +S3061C011B85003C +S3061C011B86003B +S3061C011B87003A +S3061C011B880039 +S3061C011B890038 +S3061C011B8A0037 +S3061C011B8B0036 +S3061C011B8C0035 +S3061C011B8D0034 +S3061C011B8E0033 +S3061C011B8F0032 +S3061C011B900031 +S3061C011B910030 +S3061C011B92002F +S3061C011B93002E +S3061C011B94002D +S3061C011B95002C +S3061C011B96002B +S3061C011B97002A +S3061C011B980029 +S3061C011B990028 +S3061C011B9A0027 +S3061C011B9B0026 +S3061C011B9C0025 +S3061C011B9D0024 +S3061C011B9E0023 +S3061C011B9F0022 +S3061C011BA00021 +S3061C011BA10020 +S3061C011BA2001F +S3061C011BA3001E +S3061C011BA4001D +S3061C011BA5001C +S3061C011BA6001B +S3061C011BA7001A +S3061C011BA80019 +S3061C011BA90018 +S3061C011BAA0017 +S3061C011BAB0016 +S3061C011BAC0015 +S3061C011BAD0014 +S3061C011BAE0013 +S3061C011BAF0012 +S3061C011BB00011 +S3061C011BB10010 +S3061C011BB2000F +S3061C011BB3000E +S3061C011BB4000D +S3061C011BB5000C +S3061C011BB6000B +S3061C011BB7000A +S3061C011BB80009 +S3061C011BB90008 +S3061C011BBA0007 +S3061C011BBB0006 +S3061C011BBC0005 +S3061C011BBD0004 +S3061C011BBE0003 +S3061C011BBF0002 +S3061C011BC00001 +S3061C011BC10000 +S3061C011BC200FF +S3061C011BC300FE +S3061C011BC400FD +S3061C011BC500FC +S3061C011BC600FB +S3061C011BC700FA +S3061C011BC800F9 +S3061C011BC900F8 +S3061C011BCA00F7 +S3061C011BCB00F6 +S3061C011BCC00F5 +S3061C011BCD00F4 +S3061C011BCE00F3 +S3061C011BCF00F2 +S3061C011BD000F1 +S3061C011BD100F0 +S3061C011BD200EF +S3061C011BD300EE +S3061C011BD400ED +S3061C011BD500EC +S3061C011BD600EB +S3061C011BD700EA +S3061C011BD800E9 +S3061C011BD900E8 +S3061C011BDA00E7 +S3061C011BDB00E6 +S3061C011BDC00E5 +S3061C011BDD00E4 +S3061C011BDE00E3 +S3061C011BDF00E2 +S3061C011BE000E1 +S3061C011BE100E0 +S3061C011BE200DF +S3061C011BE300DE +S3061C011BE400DD +S3061C011BE500DC +S3061C011BE600DB +S3061C011BE700DA +S3061C011BE800D9 +S3061C011BE900D8 +S3061C011BEA00D7 +S3061C011BEB00D6 +S3061C011BEC00D5 +S3061C011BED00D4 +S3061C011BEE00D3 +S3061C011BEF00D2 +S3061C011BF000D1 +S3061C011BF100D0 +S3061C011BF200CF +S3061C011BF300CE +S3061C011BF400CD +S3061C011BF500CC +S3061C011BF600CB +S3061C011BF700CA +S3061C011BF800C9 +S3061C011BF900C8 +S3061C011BFA00C7 +S3061C011BFB00C6 +S3061C011BFC00C5 +S3061C011BFD00C4 +S3061C011BFE00C3 +S3061C011BFF00C2 +S3061C011C0000C0 +S3061C011C0100BF +S3061C011C0200BE +S3061C011C0300BD +S3061C011C0400BC +S3061C011C0500BB +S3061C011C0600BA +S3061C011C0700B9 +S3061C011C0800B8 +S3061C011C0900B7 +S3061C011C0A00B6 +S3061C011C0B00B5 +S3061C011C0C00B4 +S3061C011C0D00B3 +S3061C011C0E00B2 +S3061C011C0F00B1 +S3061C011C1000B0 +S3061C011C1100AF +S3061C011C1200AE +S3061C011C1300AD +S3061C011C1400AC +S3061C011C1500AB +S3061C011C1600AA +S3061C011C1700A9 +S3061C011C1800A8 +S3061C011C1900A7 +S3061C011C1A00A6 +S3061C011C1B00A5 +S3061C011C1C00A4 +S3061C011C1D00A3 +S3061C011C1E00A2 +S3061C011C1F00A1 +S3061C011C2000A0 +S3061C011C21009F +S3061C011C22009E +S3061C011C23009D +S3061C011C24009C +S3061C011C25009B +S3061C011C26009A +S3061C011C270099 +S3061C011C280098 +S3061C011C290097 +S3061C011C2A0096 +S3061C011C2B0095 +S3061C011C2C0094 +S3061C011C2D0093 +S3061C011C2E0092 +S3061C011C2F0091 +S3061C011C300090 +S3061C011C31008F +S3061C011C32008E +S3061C011C33008D +S3061C011C34008C +S3061C011C35008B +S3061C011C36008A +S3061C011C370089 +S3061C011C380088 +S3061C011C390087 +S3061C011C3A0086 +S3061C011C3B0085 +S3061C011C3C0084 +S3061C011C3D0083 +S3061C011C3E0082 +S3061C011C3F0081 +S3061C011C400080 +S3061C011C41007F +S3061C011C42007E +S3061C011C43007D +S3061C011C44007C +S3061C011C45007B +S3061C011C46007A +S3061C011C470079 +S3061C011C480078 +S3061C011C490077 +S3061C011C4A0076 +S3061C011C4B0075 +S3061C011C4C0074 +S3061C011C4D0073 +S3061C011C4E0072 +S3061C011C4F0071 +S3061C011C500070 +S3061C011C51006F +S3061C011C52006E +S3061C011C53006D +S3061C011C54006C +S3061C011C55006B +S3061C011C56006A +S3061C011C570069 +S3061C011C580068 +S3061C011C590067 +S3061C011C5A0066 +S3061C011C5B0065 +S3061C011C5C0064 +S3061C011C5D0063 +S3061C011C5E0062 +S3061C011C5F0061 +S3061C011C600060 +S3061C011C61005F +S3061C011C62005E +S3061C011C63005D +S3061C011C64005C +S3061C011C65005B +S3061C011C66005A +S3061C011C670059 +S3061C011C680058 +S3061C011C690057 +S3061C011C6A0056 +S3061C011C6B0055 +S3061C011C6C0054 +S3061C011C6D0053 +S3061C011C6E0052 +S3061C011C6F0051 +S3061C011C700050 +S3061C011C71004F +S3061C011C72004E +S3061C011C73004D +S3061C011C74004C +S3061C011C75004B +S3061C011C76004A +S3061C011C770049 +S3061C011C780048 +S3061C011C790047 +S3061C011C7A0046 +S3061C011C7B0045 +S3061C011C7C0044 +S3061C011C7D0043 +S3061C011C7E0042 +S3061C011C7F0041 +S3061C011C800040 +S3061C011C81003F +S3061C011C82003E +S3061C011C83003D +S3061C011C84003C +S3061C011C85003B +S3061C011C86003A +S3061C011C870039 +S3061C011C880038 +S3061C011C890037 +S3061C011C8A0036 +S3061C011C8B0035 +S3061C011C8C0034 +S3061C011C8D0033 +S3061C011C8E0032 +S3061C011C8F0031 +S3061C011C900030 +S3061C011C91002F +S3061C011C92002E +S3061C011C93002D +S3061C011C94002C +S3061C011C95002B +S3061C011C96002A +S3061C011C970029 +S3061C011C980028 +S3061C011C990027 +S3061C011C9A0026 +S3061C011C9B0025 +S3061C011C9C0024 +S3061C011C9D0023 +S3061C011C9E0022 +S3061C011C9F0021 +S3061C011CA00020 +S3061C011CA1001F +S3061C011CA2001E +S3061C011CA3001D +S3061C011CA4001C +S3061C011CA5001B +S3061C011CA6001A +S3061C011CA70019 +S3061C011CA80018 +S3061C011CA90017 +S3061C011CAA0016 +S3061C011CAB0015 +S3061C011CAC0014 +S3061C011CAD0013 +S3061C011CAE0012 +S3061C011CAF0011 +S3061C011CB00010 +S3061C011CB1000F +S3061C011CB2000E +S3061C011CB3000D +S3061C011CB4000C +S3061C011CB5000B +S3061C011CB6000A +S3061C011CB70009 +S3061C011CB80008 +S3061C011CB90007 +S3061C011CBA0006 +S3061C011CBB0005 +S3061C011CBC0004 +S3061C011CBD0003 +S3061C011CBE0002 +S3061C011CBF0001 +S3061C011CC00000 +S3061C011CC100FF +S3061C011CC200FE +S3061C011CC300FD +S3061C011CC400FC +S3061C011CC500FB +S3061C011CC600FA +S3061C011CC700F9 +S3061C011CC800F8 +S3061C011CC900F7 +S3061C011CCA00F6 +S3061C011CCB00F5 +S3061C011CCC00F4 +S3061C011CCD00F3 +S3061C011CCE00F2 +S3061C011CCF00F1 +S3061C011CD000F0 +S3061C011CD100EF +S3061C011CD200EE +S3061C011CD300ED +S3061C011CD400EC +S3061C011CD500EB +S3061C011CD600EA +S3061C011CD700E9 +S3061C011CD800E8 +S3061C011CD900E7 +S3061C011CDA00E6 +S3061C011CDB00E5 +S3061C011CDC00E4 +S3061C011CDD00E3 +S3061C011CDE00E2 +S3061C011CDF00E1 +S3061C011CE000E0 +S3061C011CE100DF +S3061C011CE200DE +S3061C011CE300DD +S3061C011CE400DC +S3061C011CE500DB +S3061C011CE600DA +S3061C011CE700D9 +S3061C011CE800D8 +S3061C011CE900D7 +S3061C011CEA00D6 +S3061C011CEB00D5 +S3061C011CEC00D4 +S3061C011CED00D3 +S3061C011CEE00D2 +S3061C011CEF00D1 +S3061C011CF000D0 +S3061C011CF100CF +S3061C011CF200CE +S3061C011CF300CD +S3061C011CF400CC +S3061C011CF500CB +S3061C011CF600CA +S3061C011CF700C9 +S3061C011CF800C8 +S3061C011CF900C7 +S3061C011CFA00C6 +S3061C011CFB00C5 +S3061C011CFC00C4 +S3061C011CFD00C3 +S3061C011CFE00C2 +S3061C011CFF00C1 +S3061C011D0000BF +S3061C011D0100BE +S3061C011D0200BD +S3061C011D0300BC +S3061C011D0400BB +S3061C011D0500BA +S3061C011D0600B9 +S3061C011D0700B8 +S3061C011D0800B7 +S3061C011D0900B6 +S3061C011D0A00B5 +S3061C011D0B00B4 +S3061C011D0C00B3 +S3061C011D0D00B2 +S3061C011D0E00B1 +S3061C011D0F00B0 +S3061C011D1000AF +S3061C011D1100AE +S3061C011D1200AD +S3061C011D1300AC +S3061C011D1400AB +S3061C011D1500AA +S3061C011D1600A9 +S3061C011D1700A8 +S3061C011D1800A7 +S3061C011D1900A6 +S3061C011D1A00A5 +S3061C011D1B00A4 +S3061C011D1C00A3 +S3061C011D1D00A2 +S3061C011D1E00A1 +S3061C011D1F00A0 +S3061C011D20009F +S3061C011D21009E +S3061C011D22009D +S3061C011D23009C +S3061C011D24009B +S3061C011D25009A +S3061C011D260099 +S3061C011D270098 +S3061C011D280097 +S3061C011D290096 +S3061C011D2A0095 +S3061C011D2B0094 +S3061C011D2C0093 +S3061C011D2D0092 +S3061C011D2E0091 +S3061C011D2F0090 +S3061C011D30008F +S3061C011D31008E +S3061C011D32008D +S3061C011D33008C +S3061C011D34008B +S3061C011D35008A +S3061C011D360089 +S3061C011D370088 +S3061C011D380087 +S3061C011D390086 +S3061C011D3A0085 +S3061C011D3B0084 +S3061C011D3C0083 +S3061C011D3D0082 +S3061C011D3E0081 +S3061C011D3F0080 +S3061C011D40007F +S3061C011D41007E +S3061C011D42007D +S3061C011D43007C +S3061C011D44007B +S3061C011D45007A +S3061C011D460079 +S3061C011D470078 +S3061C011D480077 +S3061C011D490076 +S3061C011D4A0075 +S3061C011D4B0074 +S3061C011D4C0073 +S3061C011D4D0072 +S3061C011D4E0071 +S3061C011D4F0070 +S3061C011D50006F +S3061C011D51006E +S3061C011D52006D +S3061C011D53006C +S3061C011D54006B +S3061C011D55006A +S3061C011D560069 +S3061C011D570068 +S3061C011D580067 +S3061C011D590066 +S3061C011D5A0065 +S3061C011D5B0064 +S3061C011D5C0063 +S3061C011D5D0062 +S3061C011D5E0061 +S3061C011D5F0060 +S3061C011D60005F +S3061C011D61005E +S3061C011D62005D +S3061C011D63005C +S3061C011D64005B +S3061C011D65005A +S3061C011D660059 +S3061C011D670058 +S3061C011D680057 +S3061C011D690056 +S3061C011D6A0055 +S3061C011D6B0054 +S3061C011D6C0053 +S3061C011D6D0052 +S3061C011D6E0051 +S3061C011D6F0050 +S3061C011D70004F +S3061C011D71004E +S3061C011D72004D +S3061C011D73004C +S3061C011D74004B +S3061C011D75004A +S3061C011D760049 +S3061C011D770048 +S3061C011D780047 +S3061C011D790046 +S3061C011D7A0045 +S3061C011D7B0044 +S3061C011D7C0043 +S3061C011D7D0042 +S3061C011D7E0041 +S3061C011D7F0040 +S3061C011D80003F +S3061C011D81003E +S3061C011D82003D +S3061C011D83003C +S3061C011D84003B +S3061C011D85003A +S3061C011D860039 +S3061C011D870038 +S3061C011D880037 +S3061C011D890036 +S3061C011D8A0035 +S3061C011D8B0034 +S3061C011D8C0033 +S3061C011D8D0032 +S3061C011D8E0031 +S3061C011D8F0030 +S3061C011D90002F +S3061C011D91002E +S3061C011D92002D +S3061C011D93002C +S3061C011D94002B +S3061C011D95002A +S3061C011D960029 +S3061C011D970028 +S3061C011D980027 +S3061C011D990026 +S3061C011D9A0025 +S3061C011D9B0024 +S3061C011D9C0023 +S3061C011D9D0022 +S3061C011D9E0021 +S3061C011D9F0020 +S3061C011DA0001F +S3061C011DA1001E +S3061C011DA2001D +S3061C011DA3001C +S3061C011DA4001B +S3061C011DA5001A +S3061C011DA60019 +S3061C011DA70018 +S3061C011DA80017 +S3061C011DA90016 +S3061C011DAA0015 +S3061C011DAB0014 +S3061C011DAC0013 +S3061C011DAD0012 +S3061C011DAE0011 +S3061C011DAF0010 +S3061C011DB0000F +S3061C011DB1000E +S3061C011DB2000D +S3061C011DB3000C +S3061C011DB4000B +S3061C011DB5000A +S3061C011DB60009 +S3061C011DB70008 +S3061C011DB80007 +S3061C011DB90006 +S3061C011DBA0005 +S3061C011DBB0004 +S3061C011DBC0003 +S3061C011DBD0002 +S3061C011DBE0001 +S3061C011DBF0000 +S3061C011DC000FF +S3061C011DC100FE +S3061C011DC200FD +S3061C011DC300FC +S3061C011DC400FB +S3061C011DC500FA +S3061C011DC600F9 +S3061C011DC700F8 +S3061C011DC800F7 +S3061C011DC900F6 +S3061C011DCA00F5 +S3061C011DCB00F4 +S3061C011DCC00F3 +S3061C011DCD00F2 +S3061C011DCE00F1 +S3061C011DCF00F0 +S3061C011DD000EF +S3061C011DD100EE +S3061C011DD200ED +S3061C011DD300EC +S3061C011DD400EB +S3061C011DD500EA +S3061C011DD600E9 +S3061C011DD700E8 +S3061C011DD800E7 +S3061C011DD900E6 +S3061C011DDA00E5 +S3061C011DDB00E4 +S3061C011DDC00E3 +S3061C011DDD00E2 +S3061C011DDE00E1 +S3061C011DDF00E0 +S3061C011DE000DF +S3061C011DE100DE +S3061C011DE200DD +S3061C011DE300DC +S3061C011DE400DB +S3061C011DE500DA +S3061C011DE600D9 +S3061C011DE700D8 +S3061C011DE800D7 +S3061C011DE900D6 +S3061C011DEA00D5 +S3061C011DEB00D4 +S3061C011DEC00D3 +S3061C011DED00D2 +S3061C011DEE00D1 +S3061C011DEF00D0 +S3061C011DF000CF +S3061C011DF100CE +S3061C011DF200CD +S3061C011DF300CC +S3061C011DF400CB +S3061C011DF500CA +S3061C011DF600C9 +S3061C011DF700C8 +S3061C011DF800C7 +S3061C011DF900C6 +S3061C011DFA00C5 +S3061C011DFB00C4 +S3061C011DFC00C3 +S3061C011DFD00C2 +S3061C011DFE00C1 +S3061C011DFF00C0 +S3061C011E0000BE +S3061C011E0100BD +S3061C011E0200BC +S3061C011E0300BB +S3061C011E0400BA +S3061C011E0500B9 +S3061C011E0600B8 +S3061C011E0700B7 +S3061C011E0800B6 +S3061C011E0900B5 +S3061C011E0A00B4 +S3061C011E0B00B3 +S3061C011E0C00B2 +S3061C011E0D00B1 +S3061C011E0E00B0 +S3061C011E0F00AF +S3061C011E1000AE +S3061C011E1100AD +S3061C011E1200AC +S3061C011E1300AB +S3061C011E1400AA +S3061C011E1500A9 +S3061C011E1600A8 +S3061C011E1700A7 +S3061C011E1800A6 +S3061C011E1900A5 +S3061C011E1A00A4 +S3061C011E1B00A3 +S3061C011E1C00A2 +S3061C011E1D00A1 +S3061C011E1E00A0 +S3061C011E1F009F +S3061C011E20009E +S3061C011E21009D +S3061C011E22009C +S3061C011E23009B +S3061C011E24009A +S3061C011E250099 +S3061C011E260098 +S3061C011E270097 +S3061C011E280096 +S3061C011E290095 +S3061C011E2A0094 +S3061C011E2B0093 +S3061C011E2C0092 +S3061C011E2D0091 +S3061C011E2E0090 +S3061C011E2F008F +S3061C011E30008E +S3061C011E31008D +S3061C011E32008C +S3061C011E33008B +S3061C011E34008A +S3061C011E350089 +S3061C011E360088 +S3061C011E370087 +S3061C011E380086 +S3061C011E390085 +S3061C011E3A0084 +S3061C011E3B0083 +S3061C011E3C0082 +S3061C011E3D0081 +S3061C011E3E0080 +S3061C011E3F007F +S3061C011E40007E +S3061C011E41007D +S3061C011E42007C +S3061C011E43007B +S3061C011E44007A +S3061C011E450079 +S3061C011E460078 +S3061C011E470077 +S3061C011E480076 +S3061C011E490075 +S3061C011E4A0074 +S3061C011E4B0073 +S3061C011E4C0072 +S3061C011E4D0071 +S3061C011E4E0070 +S3061C011E4F006F +S3061C011E50006E +S3061C011E51006D +S3061C011E52006C +S3061C011E53006B +S3061C011E54006A +S3061C011E550069 +S3061C011E560068 +S3061C011E570067 +S3061C011E580066 +S3061C011E590065 +S3061C011E5A0064 +S3061C011E5B0063 +S3061C011E5C0062 +S3061C011E5D0061 +S3061C011E5E0060 +S3061C011E5F005F +S3061C011E60005E +S3061C011E61005D +S3061C011E62005C +S3061C011E63005B +S3061C011E64005A +S3061C011E650059 +S3061C011E660058 +S3061C011E670057 +S3061C011E680056 +S3061C011E690055 +S3061C011E6A0054 +S3061C011E6B0053 +S3061C011E6C0052 +S3061C011E6D0051 +S3061C011E6E0050 +S3061C011E6F004F +S3061C011E70004E +S3061C011E71004D +S3061C011E72004C +S3061C011E73004B +S3061C011E74004A +S3061C011E750049 +S3061C011E760048 +S3061C011E770047 +S3061C011E780046 +S3061C011E790045 +S3061C011E7A0044 +S3061C011E7B0043 +S3061C011E7C0042 +S3061C011E7D0041 +S3061C011E7E0040 +S3061C011E7F003F +S3061C011E80003E +S3061C011E81003D +S3061C011E82003C +S3061C011E83003B +S3061C011E84003A +S3061C011E850039 +S3061C011E860038 +S3061C011E870037 +S3061C011E880036 +S3061C011E890035 +S3061C011E8A0034 +S3061C011E8B0033 +S3061C011E8C0032 +S3061C011E8D0031 +S3061C011E8E0030 +S3061C011E8F002F +S3061C011E90002E +S3061C011E91002D +S3061C011E92002C +S3061C011E93002B +S3061C011E94002A +S3061C011E950029 +S3061C011E960028 +S3061C011E970027 +S3061C011E980026 +S3061C011E990025 +S3061C011E9A0024 +S3061C011E9B0023 +S3061C011E9C0022 +S3061C011E9D0021 +S3061C011E9E0020 +S3061C011E9F001F +S3061C011EA0001E +S3061C011EA1001D +S3061C011EA2001C +S3061C011EA3001B +S3061C011EA4001A +S3061C011EA50019 +S3061C011EA60018 +S3061C011EA70017 +S3061C011EA80016 +S3061C011EA90015 +S3061C011EAA0014 +S3061C011EAB0013 +S3061C011EAC0012 +S3061C011EAD0011 +S3061C011EAE0010 +S3061C011EAF000F +S3061C011EB0000E +S3061C011EB1000D +S3061C011EB2000C +S3061C011EB3000B +S3061C011EB4000A +S3061C011EB50009 +S3061C011EB60008 +S3061C011EB70007 +S3061C011EB80006 +S3061C011EB90005 +S3061C011EBA0004 +S3061C011EBB0003 +S3061C011EBC0002 +S3061C011EBD0001 +S3061C011EBE0000 +S3061C011EBF00FF +S3061C011EC000FE +S3061C011EC100FD +S3061C011EC200FC +S3061C011EC300FB +S3061C011EC400FA +S3061C011EC500F9 +S3061C011EC600F8 +S3061C011EC700F7 +S3061C011EC800F6 +S3061C011EC900F5 +S3061C011ECA00F4 +S3061C011ECB00F3 +S3061C011ECC00F2 +S3061C011ECD00F1 +S3061C011ECE00F0 +S3061C011ECF00EF +S3061C011ED000EE +S3061C011ED100ED +S3061C011ED200EC +S3061C011ED300EB +S3061C011ED400EA +S3061C011ED500E9 +S3061C011ED600E8 +S3061C011ED700E7 +S3061C011ED800E6 +S3061C011ED900E5 +S3061C011EDA00E4 +S3061C011EDB00E3 +S3061C011EDC00E2 +S3061C011EDD00E1 +S3061C011EDE00E0 +S3061C011EDF00DF +S3061C011EE000DE +S3061C011EE100DD +S3061C011EE200DC +S3061C011EE300DB +S3061C011EE400DA +S3061C011EE500D9 +S3061C011EE600D8 +S3061C011EE700D7 +S3061C011EE800D6 +S3061C011EE900D5 +S3061C011EEA00D4 +S3061C011EEB00D3 +S3061C011EEC00D2 +S3061C011EED00D1 +S3061C011EEE00D0 +S3061C011EEF00CF +S3061C011EF000CE +S3061C011EF100CD +S3061C011EF200CC +S3061C011EF300CB +S3061C011EF400CA +S3061C011EF500C9 +S3061C011EF600C8 +S3061C011EF700C7 +S3061C011EF800C6 +S3061C011EF900C5 +S3061C011EFA00C4 +S3061C011EFB00C3 +S3061C011EFC00C2 +S3061C011EFD00C1 +S3061C011EFE00C0 +S3061C011EFF00BF +S3061C011F0000BD +S3061C011F0100BC +S3061C011F0200BB +S3061C011F0300BA +S3061C011F0400B9 +S3061C011F0500B8 +S3061C011F0600B7 +S3061C011F0700B6 +S3061C011F0800B5 +S3061C011F0900B4 +S3061C011F0A00B3 +S3061C011F0B00B2 +S3061C011F0C00B1 +S3061C011F0D00B0 +S3061C011F0E00AF +S3061C011F0F00AE +S3061C011F1000AD +S3061C011F1100AC +S3061C011F1200AB +S3061C011F1300AA +S3061C011F1400A9 +S3061C011F1500A8 +S3061C011F1600A7 +S3061C011F1700A6 +S3061C011F1800A5 +S3061C011F1900A4 +S3061C011F1A00A3 +S3061C011F1B00A2 +S3061C011F1C00A1 +S3061C011F1D00A0 +S3061C011F1E009F +S3061C011F1F009E +S3061C011F20009D +S3061C011F21009C +S3061C011F22009B +S3061C011F23009A +S3061C011F240099 +S3061C011F250098 +S3061C011F260097 +S3061C011F270096 +S3061C011F280095 +S3061C011F290094 +S3061C011F2A0093 +S3061C011F2B0092 +S3061C011F2C0091 +S3061C011F2D0090 +S3061C011F2E008F +S3061C011F2F008E +S3061C011F30008D +S3061C011F31008C +S3061C011F32008B +S3061C011F33008A +S3061C011F340089 +S3061C011F350088 +S3061C011F360087 +S3061C011F370086 +S3061C011F380085 +S3061C011F390084 +S3061C011F3A0083 +S3061C011F3B0082 +S3061C011F3C0081 +S3061C011F3D0080 +S3061C011F3E007F +S3061C011F3F007E +S3061C011F40007D +S3061C011F41007C +S3061C011F42007B +S3061C011F43007A +S3061C011F440079 +S3061C011F450078 +S3061C011F460077 +S3061C011F470076 +S3061C011F480075 +S3061C011F490074 +S3061C011F4A0073 +S3061C011F4B0072 +S3061C011F4C0071 +S3061C011F4D0070 +S3061C011F4E006F +S3061C011F4F006E +S3061C011F50006D +S3061C011F51006C +S3061C011F52006B +S3061C011F53006A +S3061C011F540069 +S3061C011F550068 +S3061C011F560067 +S3061C011F570066 +S3061C011F580065 +S3061C011F590064 +S3061C011F5A0063 +S3061C011F5B0062 +S3061C011F5C0061 +S3061C011F5D0060 +S3061C011F5E005F +S3061C011F5F005E +S3061C011F60005D +S3061C011F61005C +S3061C011F62005B +S3061C011F63005A +S3061C011F640059 +S3061C011F650058 +S3061C011F660057 +S3061C011F670056 +S3061C011F680055 +S3061C011F690054 +S3061C011F6A0053 +S3061C011F6B0052 +S3061C011F6C0051 +S3061C011F6D0050 +S3061C011F6E004F +S3061C011F6F004E +S3061C011F70004D +S3061C011F71004C +S3061C011F72004B +S3061C011F73004A +S3061C011F740049 +S3061C011F750048 +S3061C011F760047 +S3061C011F770046 +S3061C011F780045 +S3061C011F790044 +S3061C011F7A0043 +S3061C011F7B0042 +S3061C011F7C0041 +S3061C011F7D0040 +S3061C011F7E003F +S3061C011F7F003E +S3061C011F80003D +S3061C011F81003C +S3061C011F82003B +S3061C011F83003A +S3061C011F840039 +S3061C011F850038 +S3061C011F860037 +S3061C011F870036 +S3061C011F880035 +S3061C011F890034 +S3061C011F8A0033 +S3061C011F8B0032 +S3061C011F8C0031 +S3061C011F8D0030 +S3061C011F8E002F +S3061C011F8F002E +S3061C011F90002D +S3061C011F91002C +S3061C011F92002B +S3061C011F93002A +S3061C011F940029 +S3061C011F950028 +S3061C011F960027 +S3061C011F970026 +S3061C011F980025 +S3061C011F990024 +S3061C011F9A0023 +S3061C011F9B0022 +S3061C011F9C0021 +S3061C011F9D0020 +S3061C011F9E001F +S3061C011F9F001E +S3061C011FA0001D +S3061C011FA1001C +S3061C011FA2001B +S3061C011FA3001A +S3061C011FA40019 +S3061C011FA50018 +S3061C011FA60017 +S3061C011FA70016 +S3061C011FA80015 +S3061C011FA90014 +S3061C011FAA0013 +S3061C011FAB0012 +S3061C011FAC0011 +S3061C011FAD0010 +S3061C011FAE000F +S3061C011FAF000E +S3061C011FB0000D +S3061C011FB1000C +S3061C011FB2000B +S3061C011FB3000A +S3061C011FB40009 +S3061C011FB50008 +S3061C011FB60007 +S3061C011FB70006 +S3061C011FB80005 +S3061C011FB90004 +S3061C011FBA0003 +S3061C011FBB0002 +S3061C011FBC0001 +S3061C011FBD0000 +S3061C011FBE00FF +S3061C011FBF00FE +S3061C011FC000FD +S3061C011FC100FC +S3061C011FC200FB +S3061C011FC300FA +S3061C011FC400F9 +S3061C011FC500F8 +S3061C011FC600F7 +S3061C011FC700F6 +S3061C011FC800F5 +S3061C011FC900F4 +S3061C011FCA00F3 +S3061C011FCB00F2 +S3061C011FCC00F1 +S3061C011FCD00F0 +S3061C011FCE00EF +S3061C011FCF00EE +S3061C011FD000ED +S3061C011FD100EC +S3061C011FD200EB +S3061C011FD300EA +S3061C011FD400E9 +S3061C011FD500E8 +S3061C011FD600E7 +S3061C011FD700E6 +S3061C011FD800E5 +S3061C011FD900E4 +S3061C011FDA00E3 +S3061C011FDB00E2 +S3061C011FDC00E1 +S3061C011FDD00E0 +S3061C011FDE00DF +S3061C011FDF00DE +S3061C011FE000DD +S3061C011FE100DC +S3061C011FE200DB +S3061C011FE300DA +S3061C011FE400D9 +S3061C011FE500D8 +S3061C011FE600D7 +S3061C011FE700D6 +S3061C011FE800D5 +S3061C011FE900D4 +S3061C011FEA00D3 +S3061C011FEB00D2 +S3061C011FEC00D1 +S3061C011FED00D0 +S3061C011FEE00CF +S3061C011FEF00CE +S3061C011FF000CD +S3061C011FF100CC +S3061C011FF200CB +S3061C011FF300CA +S3061C011FF400C9 +S3061C011FF500C8 +S3061C011FF600C7 +S3061C011FF700C6 +S3061C011FF800C5 +S3061C011FF900C4 +S3061C011FFA00C3 +S3061C011FFB00C2 +S3061C011FFC00C1 +S3061C011FFD00C0 +S3061C011FFE00BF +S3061C011FFF00BE +S3061C01200000BC +S3061C01200100BB +S3061C01200200BA +S3061C01200300B9 +S3061C01200400B8 +S3061C01200500B7 +S3061C01200600B6 +S3061C01200700B5 +S3061C01200800B4 +S3061C01200900B3 +S3061C01200A00B2 +S3061C01200B00B1 +S3061C01200C00B0 +S3061C01200D00AF +S3061C01200E00AE +S3061C01200F00AD +S3061C01201000AC +S3061C01201100AB +S3061C01201200AA +S3061C01201300A9 +S3061C01201400A8 +S3061C01201500A7 +S3061C01201600A6 +S3061C01201700A5 +S3061C01201800A4 +S3061C01201900A3 +S3061C01201A00A2 +S3061C01201B00A1 +S3061C01201C00A0 +S3061C01201D009F +S3061C01201E009E +S3061C01201F009D +S3061C012020009C +S3061C012021009B +S3061C012022009A +S3061C0120230099 +S3061C0120240098 +S3061C0120250097 +S3061C0120260096 +S3061C0120270095 +S3061C0120280094 +S3061C0120290093 +S3061C01202A0092 +S3061C01202B0091 +S3061C01202C0090 +S3061C01202D008F +S3061C01202E008E +S3061C01202F008D +S3061C012030008C +S3061C012031008B +S3061C012032008A +S3061C0120330089 +S3061C0120340088 +S3061C0120350087 +S3061C0120360086 +S3061C0120370085 +S3061C0120380084 +S3061C0120390083 +S3061C01203A0082 +S3061C01203B0081 +S3061C01203C0080 +S3061C01203D007F +S3061C01203E007E +S3061C01203F007D +S3061C012040007C +S3061C012041007B +S3061C012042007A +S3061C0120430079 +S3061C0120440078 +S3061C0120450077 +S3061C0120460076 +S3061C0120470075 +S3061C0120480074 +S3061C0120490073 +S3061C01204A0072 +S3061C01204B0071 +S3061C01204C0070 +S3061C01204D006F +S3061C01204E006E +S3061C01204F006D +S3061C012050006C +S3061C012051006B +S3061C012052006A +S3061C0120530069 +S3061C0120540068 +S3061C0120550067 +S3061C0120560066 +S3061C0120570065 +S3061C0120580064 +S3061C0120590063 +S3061C01205A0062 +S3061C01205B0061 +S3061C01205C0060 +S3061C01205D005F +S3061C01205E005E +S3061C01205F005D +S3061C012060005C +S3061C012061005B +S3061C012062005A +S3061C0120630059 +S3061C0120640058 +S3061C0120650057 +S3061C0120660056 +S3061C0120670055 +S3061C0120680054 +S3061C0120690053 +S3061C01206A0052 +S3061C01206B0051 +S3061C01206C0050 +S3061C01206D004F +S3061C01206E004E +S3061C01206F004D +S3061C012070004C +S3061C012071004B +S3061C012072004A +S3061C0120730049 +S3061C0120740048 +S3061C0120750047 +S3061C0120760046 +S3061C0120770045 +S3061C0120780044 +S3061C0120790043 +S3061C01207A0042 +S3061C01207B0041 +S3061C01207C0040 +S3061C01207D003F +S3061C01207E003E +S3061C01207F003D +S3061C012080003C +S3061C012081003B +S3061C012082003A +S3061C0120830039 +S3061C0120840038 +S3061C0120850037 +S3061C0120860036 +S3061C0120870035 +S3061C0120880034 +S3061C0120890033 +S3061C01208A0032 +S3061C01208B0031 +S3061C01208C0030 +S3061C01208D002F +S3061C01208E002E +S3061C01208F002D +S3061C012090002C +S3061C012091002B +S3061C012092002A +S3061C0120930029 +S3061C0120940028 +S3061C0120950027 +S3061C0120960026 +S3061C0120970025 +S3061C0120980024 +S3061C0120990023 +S3061C01209A0022 +S3061C01209B0021 +S3061C01209C0020 +S3061C01209D001F +S3061C01209E001E +S3061C01209F001D +S3061C0120A0001C +S3061C0120A1001B +S3061C0120A2001A +S3061C0120A30019 +S3061C0120A40018 +S3061C0120A50017 +S3061C0120A60016 +S3061C0120A70015 +S3061C0120A80014 +S3061C0120A90013 +S3061C0120AA0012 +S3061C0120AB0011 +S3061C0120AC0010 +S3061C0120AD000F +S3061C0120AE000E +S3061C0120AF000D +S3061C0120B0000C +S3061C0120B1000B +S3061C0120B2000A +S3061C0120B30009 +S3061C0120B40008 +S3061C0120B50007 +S3061C0120B60006 +S3061C0120B70005 +S3061C0120B80004 +S3061C0120B90003 +S3061C0120BA0002 +S3061C0120BB0001 +S3061C0120BC0000 +S3061C0120BD00FF +S3061C0120BE00FE +S3061C0120BF00FD +S3061C0120C000FC +S3061C0120C100FB +S3061C0120C200FA +S3061C0120C300F9 +S3061C0120C400F8 +S3061C0120C500F7 +S3061C0120C600F6 +S3061C0120C700F5 +S3061C0120C800F4 +S3061C0120C900F3 +S3061C0120CA00F2 +S3061C0120CB00F1 +S3061C0120CC00F0 +S3061C0120CD00EF +S3061C0120CE00EE +S3061C0120CF00ED +S3061C0120D000EC +S3061C0120D100EB +S3061C0120D200EA +S3061C0120D300E9 +S3061C0120D400E8 +S3061C0120D500E7 +S3061C0120D600E6 +S3061C0120D700E5 +S3061C0120D800E4 +S3061C0120D900E3 +S3061C0120DA00E2 +S3061C0120DB00E1 +S3061C0120DC00E0 +S3061C0120DD00DF +S3061C0120DE00DE +S3061C0120DF00DD +S3061C0120E000DC +S3061C0120E100DB +S3061C0120E200DA +S3061C0120E300D9 +S3061C0120E400D8 +S3061C0120E500D7 +S3061C0120E600D6 +S3061C0120E700D5 +S3061C0120E800D4 +S3061C0120E900D3 +S3061C0120EA00D2 +S3061C0120EB00D1 +S3061C0120EC00D0 +S3061C0120ED00CF +S3061C0120EE00CE +S3061C0120EF00CD +S3061C0120F000CC +S3061C0120F100CB +S3061C0120F200CA +S3061C0120F300C9 +S3061C0120F400C8 +S3061C0120F500C7 +S3061C0120F600C6 +S3061C0120F700C5 +S3061C0120F800C4 +S3061C0120F900C3 +S3061C0120FA00C2 +S3061C0120FB00C1 +S3061C0120FC00C0 +S3061C0120FD00BF +S3061C0120FE00BE +S3061C0120FF00BD +S3061C01210000BB +S3061C01210100BA +S3061C01210200B9 +S3061C01210300B8 +S3061C01210400B7 +S3061C01210500B6 +S3061C01210600B5 +S3061C01210700B4 +S3061C01210800B3 +S3061C01210900B2 +S3061C01210A00B1 +S3061C01210B00B0 +S3061C01210C00AF +S3061C01210D00AE +S3061C01210E00AD +S3061C01210F00AC +S3061C01211000AB +S3061C01211100AA +S3061C01211200A9 +S3061C01211300A8 +S3061C01211400A7 +S3061C01211500A6 +S3061C01211600A5 +S3061C01211700A4 +S3061C01211800A3 +S3061C01211900A2 +S3061C01211A00A1 +S3061C01211B00A0 +S3061C01211C009F +S3061C01211D009E +S3061C01211E009D +S3061C01211F009C +S3061C012120009B +S3061C012121009A +S3061C0121220099 +S3061C0121230098 +S3061C0121240097 +S3061C0121250096 +S3061C0121260095 +S3061C0121270094 +S3061C0121280093 +S3061C0121290092 +S3061C01212A0091 +S3061C01212B0090 +S3061C01212C008F +S3061C01212D008E +S3061C01212E008D +S3061C01212F008C +S3061C012130008B +S3061C012131008A +S3061C0121320089 +S3061C0121330088 +S3061C0121340087 +S3061C0121350086 +S3061C0121360085 +S3061C0121370084 +S3061C0121380083 +S3061C0121390082 +S3061C01213A0081 +S3061C01213B0080 +S3061C01213C007F +S3061C01213D007E +S3061C01213E007D +S3061C01213F007C +S3061C012140007B +S3061C012141007A +S3061C0121420079 +S3061C0121430078 +S3061C0121440077 +S3061C0121450076 +S3061C0121460075 +S3061C0121470074 +S3061C0121480073 +S3061C0121490072 +S3061C01214A0071 +S3061C01214B0070 +S3061C01214C006F +S3061C01214D006E +S3061C01214E006D +S3061C01214F006C +S3061C012150006B +S3061C012151006A +S3061C0121520069 +S3061C0121530068 +S3061C0121540067 +S3061C0121550066 +S3061C0121560065 +S3061C0121570064 +S3061C0121580063 +S3061C0121590062 +S3061C01215A0061 +S3061C01215B0060 +S3061C01215C005F +S3061C01215D005E +S3061C01215E005D +S3061C01215F005C +S3061C012160005B +S3061C012161005A +S3061C0121620059 +S3061C0121630058 +S3061C0121640057 +S3061C0121650056 +S3061C0121660055 +S3061C0121670054 +S3061C0121680053 +S3061C0121690052 +S3061C01216A0051 +S3061C01216B0050 +S3061C01216C004F +S3061C01216D004E +S3061C01216E004D +S3061C01216F004C +S3061C012170004B +S3061C012171004A +S3061C0121720049 +S3061C0121730048 +S3061C0121740047 +S3061C0121750046 +S3061C0121760045 +S3061C0121770044 +S3061C0121780043 +S3061C0121790042 +S3061C01217A0041 +S3061C01217B0040 +S3061C01217C003F +S3061C01217D003E +S3061C01217E003D +S3061C01217F003C +S3061C012180003B +S3061C012181003A +S3061C0121820039 +S3061C0121830038 +S3061C0121840037 +S3061C0121850036 +S3061C0121860035 +S3061C0121870034 +S3061C0121880033 +S3061C0121890032 +S3061C01218A0031 +S3061C01218B0030 +S3061C01218C002F +S3061C01218D002E +S3061C01218E002D +S3061C01218F002C +S3061C012190002B +S3061C012191002A +S3061C0121920029 +S3061C0121930028 +S3061C0121940027 +S3061C0121950026 +S3061C0121960025 +S3061C0121970024 +S3061C0121980023 +S3061C0121990022 +S3061C01219A0021 +S3061C01219B0020 +S3061C01219C001F +S3061C01219D001E +S3061C01219E001D +S3061C01219F001C +S3061C0121A0001B +S3061C0121A1001A +S3061C0121A20019 +S3061C0121A30018 +S3061C0121A40017 +S3061C0121A50016 +S3061C0121A60015 +S3061C0121A70014 +S3061C0121A80013 +S3061C0121A90012 +S3061C0121AA0011 +S3061C0121AB0010 +S3061C0121AC000F +S3061C0121AD000E +S3061C0121AE000D +S3061C0121AF000C +S3061C0121B0000B +S3061C0121B1000A +S3061C0121B20009 +S3061C0121B30008 +S3061C0121B40007 +S3061C0121B50006 +S3061C0121B60005 +S3061C0121B70004 +S3061C0121B80003 +S3061C0121B90002 +S3061C0121BA0001 +S3061C0121BB0000 +S3061C0121BC00FF +S3061C0121BD00FE +S3061C0121BE00FD +S3061C0121BF00FC +S3061C0121C000FB +S3061C0121C100FA +S3061C0121C200F9 +S3061C0121C300F8 +S3061C0121C400F7 +S3061C0121C500F6 +S3061C0121C600F5 +S3061C0121C700F4 +S3061C0121C800F3 +S3061C0121C900F2 +S3061C0121CA00F1 +S3061C0121CB00F0 +S3061C0121CC00EF +S3061C0121CD00EE +S3061C0121CE00ED +S3061C0121CF00EC +S3061C0121D000EB +S3061C0121D100EA +S3061C0121D200E9 +S3061C0121D300E8 +S3061C0121D400E7 +S3061C0121D500E6 +S3061C0121D600E5 +S3061C0121D700E4 +S3061C0121D800E3 +S3061C0121D900E2 +S3061C0121DA00E1 +S3061C0121DB00E0 +S3061C0121DC00DF +S3061C0121DD00DE +S3061C0121DE00DD +S3061C0121DF00DC +S3061C0121E000DB +S3061C0121E100DA +S3061C0121E200D9 +S3061C0121E300D8 +S3061C0121E400D7 +S3061C0121E500D6 +S3061C0121E600D5 +S3061C0121E700D4 +S3061C0121E800D3 +S3061C0121E900D2 +S3061C0121EA00D1 +S3061C0121EB00D0 +S3061C0121EC00CF +S3061C0121ED00CE +S3061C0121EE00CD +S3061C0121EF00CC +S3061C0121F000CB +S3061C0121F100CA +S3061C0121F200C9 +S3061C0121F300C8 +S3061C0121F400C7 +S3061C0121F500C6 +S3061C0121F600C5 +S3061C0121F700C4 +S3061C0121F800C3 +S3061C0121F900C2 +S3061C0121FA00C1 +S3061C0121FB00C0 +S3061C0121FC00BF +S3061C0121FD00BE +S3061C0121FE00BD +S3061C0121FF00BC +S3061C01220000BA +S3061C01220100B9 +S3061C01220200B8 +S3061C01220300B7 +S3061C01220400B6 +S3061C01220500B5 +S3061C01220600B4 +S3061C01220700B3 +S3061C01220800B2 +S3061C01220900B1 +S3061C01220A00B0 +S3061C01220B00AF +S3061C01220C00AE +S3061C01220D00AD +S3061C01220E00AC +S3061C01220F00AB +S3061C01221000AA +S3061C01221100A9 +S3061C01221200A8 +S3061C01221300A7 +S3061C01221400A6 +S3061C01221500A5 +S3061C01221600A4 +S3061C01221700A3 +S3061C01221800A2 +S3061C01221900A1 +S3061C01221A00A0 +S3061C01221B009F +S3061C01221C009E +S3061C01221D009D +S3061C01221E009C +S3061C01221F009B +S3061C012220009A +S3061C0122210099 +S3061C0122220098 +S3061C0122230097 +S3061C0122240096 +S3061C0122250095 +S3061C0122260094 +S3061C0122270093 +S3061C0122280092 +S3061C0122290091 +S3061C01222A0090 +S3061C01222B008F +S3061C01222C008E +S3061C01222D008D +S3061C01222E008C +S3061C01222F008B +S3061C012230008A +S3061C0122310089 +S3061C0122320088 +S3061C0122330087 +S3061C0122340086 +S3061C0122350085 +S3061C0122360084 +S3061C0122370083 +S3061C0122380082 +S3061C0122390081 +S3061C01223A0080 +S3061C01223B007F +S3061C01223C007E +S3061C01223D007D +S3061C01223E007C +S3061C01223F007B +S3061C012240007A +S3061C0122410079 +S3061C0122420078 +S3061C0122430077 +S3061C0122440076 +S3061C0122450075 +S3061C0122460074 +S3061C0122470073 +S3061C0122480072 +S3061C0122490071 +S3061C01224A0070 +S3061C01224B006F +S3061C01224C006E +S3061C01224D006D +S3061C01224E006C +S3061C01224F006B +S3061C012250006A +S3061C0122510069 +S3061C0122520068 +S3061C0122530067 +S3061C0122540066 +S3061C0122550065 +S3061C0122560064 +S3061C0122570063 +S3061C0122580062 +S3061C0122590061 +S3061C01225A0060 +S3061C01225B005F +S3061C01225C005E +S3061C01225D005D +S3061C01225E005C +S3061C01225F005B +S3061C012260005A +S3061C0122610059 +S3061C0122620058 +S3061C0122630057 +S3061C0122640056 +S3061C0122650055 +S3061C0122660054 +S3061C0122670053 +S3061C0122680052 +S3061C0122690051 +S3061C01226A0050 +S3061C01226B004F +S3061C01226C004E +S3061C01226D004D +S3061C01226E004C +S3061C01226F004B +S3061C012270004A +S3061C0122710049 +S3061C0122720048 +S3061C0122730047 +S3061C0122740046 +S3061C0122750045 +S3061C0122760044 +S3061C0122770043 +S3061C0122780042 +S3061C0122790041 +S3061C01227A0040 +S3061C01227B003F +S3061C01227C003E +S3061C01227D003D +S3061C01227E003C +S3061C01227F003B +S3061C012280003A +S3061C0122810039 +S3061C0122820038 +S3061C0122830037 +S3061C0122840036 +S3061C0122850035 +S3061C0122860034 +S3061C0122870033 +S3061C0122880032 +S3061C0122890031 +S3061C01228A0030 +S3061C01228B002F +S3061C01228C002E +S3061C01228D002D +S3061C01228E002C +S3061C01228F002B +S3061C012290002A +S3061C0122910029 +S3061C0122920028 +S3061C0122930027 +S3061C0122940026 +S3061C0122950025 +S3061C0122960024 +S3061C0122970023 +S3061C0122980022 +S3061C0122990021 +S3061C01229A0020 +S3061C01229B001F +S3061C01229C001E +S3061C01229D001D +S3061C01229E001C +S3061C01229F001B +S3061C0122A0001A +S3061C0122A10019 +S3061C0122A20018 +S3061C0122A30017 +S3061C0122A40016 +S3061C0122A50015 +S3061C0122A60014 +S3061C0122A70013 +S3061C0122A80012 +S3061C0122A90011 +S3061C0122AA0010 +S3061C0122AB000F +S3061C0122AC000E +S3061C0122AD000D +S3061C0122AE000C +S3061C0122AF000B +S3061C0122B0000A +S3061C0122B10009 +S3061C0122B20008 +S3061C0122B30007 +S3061C0122B40006 +S3061C0122B50005 +S3061C0122B60004 +S3061C0122B70003 +S3061C0122B80002 +S3061C0122B90001 +S3061C0122BA0000 +S3061C0122BB00FF +S3061C0122BC00FE +S3061C0122BD00FD +S3061C0122BE00FC +S3061C0122BF00FB +S3061C0122C000FA +S3061C0122C100F9 +S3061C0122C200F8 +S3061C0122C300F7 +S3061C0122C400F6 +S3061C0122C500F5 +S3061C0122C600F4 +S3061C0122C700F3 +S3061C0122C800F2 +S3061C0122C900F1 +S3061C0122CA00F0 +S3061C0122CB00EF +S3061C0122CC00EE +S3061C0122CD00ED +S3061C0122CE00EC +S3061C0122CF00EB +S3061C0122D000EA +S3061C0122D100E9 +S3061C0122D200E8 +S3061C0122D300E7 +S3061C0122D400E6 +S3061C0122D500E5 +S3061C0122D600E4 +S3061C0122D700E3 +S3061C0122D800E2 +S3061C0122D900E1 +S3061C0122DA00E0 +S3061C0122DB00DF +S3061C0122DC00DE +S3061C0122DD00DD +S3061C0122DE00DC +S3061C0122DF00DB +S3061C0122E000DA +S3061C0122E100D9 +S3061C0122E200D8 +S3061C0122E300D7 +S3061C0122E400D6 +S3061C0122E500D5 +S3061C0122E600D4 +S3061C0122E700D3 +S3061C0122E800D2 +S3061C0122E900D1 +S3061C0122EA00D0 +S3061C0122EB00CF +S3061C0122EC00CE +S3061C0122ED00CD +S3061C0122EE00CC +S3061C0122EF00CB +S3061C0122F000CA +S3061C0122F100C9 +S3061C0122F200C8 +S3061C0122F300C7 +S3061C0122F400C6 +S3061C0122F500C5 +S3061C0122F600C4 +S3061C0122F700C3 +S3061C0122F800C2 +S3061C0122F900C1 +S3061C0122FA00C0 +S3061C0122FB00BF +S3061C0122FC00BE +S3061C0122FD00BD +S3061C0122FE00BC +S3061C0122FF00BB +S3061C01230000B9 +S3061C01230100B8 +S3061C01230200B7 +S3061C01230300B6 +S3061C01230400B5 +S3061C01230500B4 +S3061C01230600B3 +S3061C01230700B2 +S3061C01230800B1 +S3061C01230900B0 +S3061C01230A00AF +S3061C01230B00AE +S3061C01230C00AD +S3061C01230D00AC +S3061C01230E00AB +S3061C01230F00AA +S3061C01231000A9 +S3061C01231100A8 +S3061C01231200A7 +S3061C01231300A6 +S3061C01231400A5 +S3061C01231500A4 +S3061C01231600A3 +S3061C01231700A2 +S3061C01231800A1 +S3061C01231900A0 +S3061C01231A009F +S3061C01231B009E +S3061C01231C009D +S3061C01231D009C +S3061C01231E009B +S3061C01231F009A +S3061C0123200099 +S3061C0123210098 +S3061C0123220097 +S3061C0123230096 +S3061C0123240095 +S3061C0123250094 +S3061C0123260093 +S3061C0123270092 +S3061C0123280091 +S3061C0123290090 +S3061C01232A008F +S3061C01232B008E +S3061C01232C008D +S3061C01232D008C +S3061C01232E008B +S3061C01232F008A +S3061C0123300089 +S3061C0123310088 +S3061C0123320087 +S3061C0123330086 +S3061C0123340085 +S3061C0123350084 +S3061C0123360083 +S3061C0123370082 +S3061C0123380081 +S3061C0123390080 +S3061C01233A007F +S3061C01233B007E +S3061C01233C007D +S3061C01233D007C +S3061C01233E007B +S3061C01233F007A +S3061C0123400079 +S3061C0123410078 +S3061C0123420077 +S3061C0123430076 +S3061C0123440075 +S3061C0123450074 +S3061C0123460073 +S3061C0123470072 +S3061C0123480071 +S3061C0123490070 +S3061C01234A006F +S3061C01234B006E +S3061C01234C006D +S3061C01234D006C +S3061C01234E006B +S3061C01234F006A +S3061C0123500069 +S3061C0123510068 +S3061C0123520067 +S3061C0123530066 +S3061C0123540065 +S3061C0123550064 +S3061C0123560063 +S3061C0123570062 +S3061C0123580061 +S3061C0123590060 +S3061C01235A005F +S3061C01235B005E +S3061C01235C005D +S3061C01235D005C +S3061C01235E005B +S3061C01235F005A +S3061C0123600059 +S3061C0123610058 +S3061C0123620057 +S3061C0123630056 +S3061C0123640055 +S3061C0123650054 +S3061C0123660053 +S3061C0123670052 +S3061C0123680051 +S3061C0123690050 +S3061C01236A004F +S3061C01236B004E +S3061C01236C004D +S3061C01236D004C +S3061C01236E004B +S3061C01236F004A +S3061C0123700049 +S3061C0123710048 +S3061C0123720047 +S3061C0123730046 +S3061C0123740045 +S3061C0123750044 +S3061C0123760043 +S3061C0123770042 +S3061C0123780041 +S3061C0123790040 +S3061C01237A003F +S3061C01237B003E +S3061C01237C003D +S3061C01237D003C +S3061C01237E003B +S3061C01237F003A +S3061C0123800039 +S3061C0123810038 +S3061C0123820037 +S3061C0123830036 +S3061C0123840035 +S3061C0123850034 +S3061C0123860033 +S3061C0123870032 +S3061C0123880031 +S3061C0123890030 +S3061C01238A002F +S3061C01238B002E +S3061C01238C002D +S3061C01238D002C +S3061C01238E002B +S3061C01238F002A +S3061C0123900029 +S3061C0123910028 +S3061C0123920027 +S3061C0123930026 +S3061C0123940025 +S3061C0123950024 +S3061C0123960023 +S3061C0123970022 +S3061C0123980021 +S3061C0123990020 +S3061C01239A001F +S3061C01239B001E +S3061C01239C001D +S3061C01239D001C +S3061C01239E001B +S3061C01239F001A +S3061C0123A00019 +S3061C0123A10018 +S3061C0123A20017 +S3061C0123A30016 +S3061C0123A40015 +S3061C0123A50014 +S3061C0123A60013 +S3061C0123A70012 +S3061C0123A80011 +S3061C0123A90010 +S3061C0123AA000F +S3061C0123AB000E +S3061C0123AC000D +S3061C0123AD000C +S3061C0123AE000B +S3061C0123AF000A +S3061C0123B00009 +S3061C0123B10008 +S3061C0123B20007 +S3061C0123B30006 +S3061C0123B40005 +S3061C0123B50004 +S3061C0123B60003 +S3061C0123B70002 +S3061C0123B80001 +S3061C0123B90000 +S3061C0123BA00FF +S3061C0123BB00FE +S3061C0123BC00FD +S3061C0123BD00FC +S3061C0123BE00FB +S3061C0123BF00FA +S3061C0123C000F9 +S3061C0123C100F8 +S3061C0123C200F7 +S3061C0123C300F6 +S3061C0123C400F5 +S3061C0123C500F4 +S3061C0123C600F3 +S3061C0123C700F2 +S3061C0123C800F1 +S3061C0123C900F0 +S3061C0123CA00EF +S3061C0123CB00EE +S3061C0123CC00ED +S3061C0123CD00EC +S3061C0123CE00EB +S3061C0123CF00EA +S3061C0123D000E9 +S3061C0123D100E8 +S3061C0123D200E7 +S3061C0123D300E6 +S3061C0123D400E5 +S3061C0123D500E4 +S3061C0123D600E3 +S3061C0123D700E2 +S3061C0123D800E1 +S3061C0123D900E0 +S3061C0123DA00DF +S3061C0123DB00DE +S3061C0123DC00DD +S3061C0123DD00DC +S3061C0123DE00DB +S3061C0123DF00DA +S3061C0123E000D9 +S3061C0123E100D8 +S3061C0123E200D7 +S3061C0123E300D6 +S3061C0123E400D5 +S3061C0123E500D4 +S3061C0123E600D3 +S3061C0123E700D2 +S3061C0123E800D1 +S3061C0123E900D0 +S3061C0123EA00CF +S3061C0123EB00CE +S3061C0123EC00CD +S3061C0123ED00CC +S3061C0123EE00CB +S3061C0123EF00CA +S3061C0123F000C9 +S3061C0123F100C8 +S3061C0123F200C7 +S3061C0123F300C6 +S3061C0123F400C5 +S3061C0123F500C4 +S3061C0123F600C3 +S3061C0123F700C2 +S3061C0123F800C1 +S3061C0123F900C0 +S3061C0123FA00BF +S3061C0123FB00BE +S3061C0123FC00BD +S3061C0123FD00BC +S3061C0123FE00BB +S3061C0123FF00BA +S3061C01240000B8 +S3061C01240100B7 +S3061C01240200B6 +S3061C01240300B5 +S3061C01240400B4 +S3061C01240500B3 +S3061C01240600B2 +S3061C01240700B1 +S3061C01240800B0 +S3061C01240900AF +S3061C01240A00AE +S3061C01240B00AD +S3061C01240C00AC +S3061C01240D00AB +S3061C01240E00AA +S3061C01240F00A9 +S3061C01241000A8 +S3061C01241100A7 +S3061C01241200A6 +S3061C01241300A5 +S3061C01241400A4 +S3061C01241500A3 +S3061C01241600A2 +S3061C01241700A1 +S3061C01241800A0 +S3061C012419009F +S3061C01241A009E +S3061C01241B009D +S3061C01241C009C +S3061C01241D009B +S3061C01241E009A +S3061C01241F0099 +S3061C0124200098 +S3061C0124210097 +S3061C0124220096 +S3061C0124230095 +S3061C0124240094 +S3061C0124250093 +S3061C0124260092 +S3061C0124270091 +S3061C0124280090 +S3061C012429008F +S3061C01242A008E +S3061C01242B008D +S3061C01242C008C +S3061C01242D008B +S3061C01242E008A +S3061C01242F0089 +S3061C0124300088 +S3061C0124310087 +S3061C0124320086 +S3061C0124330085 +S3061C0124340084 +S3061C0124350083 +S3061C0124360082 +S3061C0124370081 +S3061C0124380080 +S3061C012439007F +S3061C01243A007E +S3061C01243B007D +S3061C01243C007C +S3061C01243D007B +S3061C01243E007A +S3061C01243F0079 +S3061C0124400078 +S3061C0124410077 +S3061C0124420076 +S3061C0124430075 +S3061C0124440074 +S3061C0124450073 +S3061C0124460072 +S3061C0124470071 +S3061C0124480070 +S3061C012449006F +S3061C01244A006E +S3061C01244B006D +S3061C01244C006C +S3061C01244D006B +S3061C01244E006A +S3061C01244F0069 +S3061C0124500068 +S3061C0124510067 +S3061C0124520066 +S3061C0124530065 +S3061C0124540064 +S3061C0124550063 +S3061C0124560062 +S3061C0124570061 +S3061C0124580060 +S3061C012459005F +S3061C01245A005E +S3061C01245B005D +S3061C01245C005C +S3061C01245D005B +S3061C01245E005A +S3061C01245F0059 +S3061C0124600058 +S3061C0124610057 +S3061C0124620056 +S3061C0124630055 +S3061C0124640054 +S3061C0124650053 +S3061C0124660052 +S3061C0124670051 +S3061C0124680050 +S3061C012469004F +S3061C01246A004E +S3061C01246B004D +S3061C01246C004C +S3061C01246D004B +S3061C01246E004A +S3061C01246F0049 +S3061C0124700048 +S3061C0124710047 +S3061C0124720046 +S3061C0124730045 +S3061C0124740044 +S3061C0124750043 +S3061C0124760042 +S3061C0124770041 +S3061C0124780040 +S3061C012479003F +S3061C01247A003E +S3061C01247B003D +S3061C01247C003C +S3061C01247D003B +S3061C01247E003A +S3061C01247F0039 +S3061C0124800038 +S3061C0124810037 +S3061C0124820036 +S3061C0124830035 +S3061C0124840034 +S3061C0124850033 +S3061C0124860032 +S3061C0124870031 +S3061C0124880030 +S3061C012489002F +S3061C01248A002E +S3061C01248B002D +S3061C01248C002C +S3061C01248D002B +S3061C01248E002A +S3061C01248F0029 +S3061C0124900028 +S3061C0124910027 +S3061C0124920026 +S3061C0124930025 +S3061C0124940024 +S3061C0124950023 +S3061C0124960022 +S3061C0124970021 +S3061C0124980020 +S3061C012499001F +S3061C01249A001E +S3061C01249B001D +S3061C01249C001C +S3061C01249D001B +S3061C01249E001A +S3061C01249F0019 +S3061C0124A00018 +S3061C0124A10017 +S3061C0124A20016 +S3061C0124A30015 +S3061C0124A40014 +S3061C0124A50013 +S3061C0124A60012 +S3061C0124A70011 +S3061C0124A80010 +S3061C0124A9000F +S3061C0124AA000E +S3061C0124AB000D +S3061C0124AC000C +S3061C0124AD000B +S3061C0124AE000A +S3061C0124AF0009 +S3061C0124B00008 +S3061C0124B10007 +S3061C0124B20006 +S3061C0124B30005 +S3061C0124B40004 +S3061C0124B50003 +S3061C0124B60002 +S3061C0124B70001 +S3061C0124B80000 +S3061C0124B900FF +S3061C0124BA00FE +S3061C0124BB00FD +S3061C0124BC00FC +S3061C0124BD00FB +S3061C0124BE00FA +S3061C0124BF00F9 +S3061C0124C000F8 +S3061C0124C100F7 +S3061C0124C200F6 +S3061C0124C300F5 +S3061C0124C400F4 +S3061C0124C500F3 +S3061C0124C600F2 +S3061C0124C700F1 +S3061C0124C800F0 +S3061C0124C900EF +S3061C0124CA00EE +S3061C0124CB00ED +S3061C0124CC00EC +S3061C0124CD00EB +S3061C0124CE00EA +S3061C0124CF00E9 +S3061C0124D000E8 +S3061C0124D100E7 +S3061C0124D200E6 +S3061C0124D300E5 +S3061C0124D400E4 +S3061C0124D500E3 +S3061C0124D600E2 +S3061C0124D700E1 +S3061C0124D800E0 +S3061C0124D900DF +S3061C0124DA00DE +S3061C0124DB00DD +S3061C0124DC00DC +S3061C0124DD00DB +S3061C0124DE00DA +S3061C0124DF00D9 +S3061C0124E000D8 +S3061C0124E100D7 +S3061C0124E200D6 +S3061C0124E300D5 +S3061C0124E400D4 +S3061C0124E500D3 +S3061C0124E600D2 +S3061C0124E700D1 +S3061C0124E800D0 +S3061C0124E900CF +S3061C0124EA00CE +S3061C0124EB00CD +S3061C0124EC00CC +S3061C0124ED00CB +S3061C0124EE00CA +S3061C0124EF00C9 +S3061C0124F000C8 +S3061C0124F100C7 +S3061C0124F200C6 +S3061C0124F300C5 +S3061C0124F400C4 +S3061C0124F500C3 +S3061C0124F600C2 +S3061C0124F700C1 +S3061C0124F800C0 +S3061C0124F900BF +S3061C0124FA00BE +S3061C0124FB00BD +S3061C0124FC00BC +S3061C0124FD00BB +S3061C0124FE00BA +S3061C0124FF00B9 +S3061C01250000B7 +S3061C01250100B6 +S3061C01250200B5 +S3061C01250300B4 +S3061C01250400B3 +S3061C01250500B2 +S3061C01250600B1 +S3061C01250700B0 +S3061C01250800AF +S3061C01250900AE +S3061C01250A00AD +S3061C01250B00AC +S3061C01250C00AB +S3061C01250D00AA +S3061C01250E00A9 +S3061C01250F00A8 +S3061C01251000A7 +S3061C01251100A6 +S3061C01251200A5 +S3061C01251300A4 +S3061C01251400A3 +S3061C01251500A2 +S3061C01251600A1 +S3061C01251700A0 +S3061C012518009F +S3061C012519009E +S3061C01251A009D +S3061C01251B009C +S3061C01251C009B +S3061C01251D009A +S3061C01251E0099 +S3061C01251F0098 +S3061C0125200097 +S3061C0125210096 +S3061C0125220095 +S3061C0125230094 +S3061C0125240093 +S3061C0125250092 +S3061C0125260091 +S3061C0125270090 +S3061C012528008F +S3061C012529008E +S3061C01252A008D +S3061C01252B008C +S3061C01252C008B +S3061C01252D008A +S3061C01252E0089 +S3061C01252F0088 +S3061C0125300087 +S3061C0125310086 +S3061C0125320085 +S3061C0125330084 +S3061C0125340083 +S3061C0125350082 +S3061C0125360081 +S3061C0125370080 +S3061C012538007F +S3061C012539007E +S3061C01253A007D +S3061C01253B007C +S3061C01253C007B +S3061C01253D007A +S3061C01253E0079 +S3061C01253F0078 +S3061C0125400077 +S3061C0125410076 +S3061C0125420075 +S3061C0125430074 +S3061C0125440073 +S3061C0125450072 +S3061C0125460071 +S3061C0125470070 +S3061C012548006F +S3061C012549006E +S3061C01254A006D +S3061C01254B006C +S3061C01254C006B +S3061C01254D006A +S3061C01254E0069 +S3061C01254F0068 +S3061C0125500067 +S3061C0125510066 +S3061C0125520065 +S3061C0125530064 +S3061C0125540063 +S3061C0125550062 +S3061C0125560061 +S3061C0125570060 +S3061C012558005F +S3061C012559005E +S3061C01255A005D +S3061C01255B005C +S3061C01255C005B +S3061C01255D005A +S3061C01255E0059 +S3061C01255F0058 +S3061C0125600057 +S3061C0125610056 +S3061C0125620055 +S3061C0125630054 +S3061C0125640053 +S3061C0125650052 +S3061C0125660051 +S3061C0125670050 +S3061C012568004F +S3061C012569004E +S3061C01256A004D +S3061C01256B004C +S3061C01256C004B +S3061C01256D004A +S3061C01256E0049 +S3061C01256F0048 +S3061C0125700047 +S3061C0125710046 +S3061C0125720045 +S3061C0125730044 +S3061C0125740043 +S3061C0125750042 +S3061C0125760041 +S3061C0125770040 +S3061C012578003F +S3061C012579003E +S3061C01257A003D +S3061C01257B003C +S3061C01257C003B +S3061C01257D003A +S3061C01257E0039 +S3061C01257F0038 +S3061C0125800037 +S3061C0125810036 +S3061C0125820035 +S3061C0125830034 +S3061C0125840033 +S3061C0125850032 +S3061C0125860031 +S3061C0125870030 +S3061C012588002F +S3061C012589002E +S3061C01258A002D +S3061C01258B002C +S3061C01258C002B +S3061C01258D002A +S3061C01258E0029 +S3061C01258F0028 +S3061C0125900027 +S3061C0125910026 +S3061C0125920025 +S3061C0125930024 +S3061C0125940023 +S3061C0125950022 +S3061C0125960021 +S3061C0125970020 +S3061C012598001F +S3061C012599001E +S3061C01259A001D +S3061C01259B001C +S3061C01259C001B +S3061C01259D001A +S3061C01259E0019 +S3061C01259F0018 +S3061C0125A00017 +S3061C0125A10016 +S3061C0125A20015 +S3061C0125A30014 +S3061C0125A40013 +S3061C0125A50012 +S3061C0125A60011 +S3061C0125A70010 +S3061C0125A8000F +S3061C0125A9000E +S3061C0125AA000D +S3061C0125AB000C +S3061C0125AC000B +S3061C0125AD000A +S3061C0125AE0009 +S3061C0125AF0008 +S3061C0125B00007 +S3061C0125B10006 +S3061C0125B20005 +S3061C0125B30004 +S3061C0125B40003 +S3061C0125B50002 +S3061C0125B60001 +S3061C0125B70000 +S3061C0125B800FF +S3061C0125B900FE +S3061C0125BA00FD +S3061C0125BB00FC +S3061C0125BC00FB +S3061C0125BD00FA +S3061C0125BE00F9 +S3061C0125BF00F8 +S3061C0125C000F7 +S3061C0125C100F6 +S3061C0125C200F5 +S3061C0125C300F4 +S3061C0125C400F3 +S3061C0125C500F2 +S3061C0125C600F1 +S3061C0125C700F0 +S3061C0125C800EF +S3061C0125C900EE +S3061C0125CA00ED +S3061C0125CB00EC +S3061C0125CC00EB +S3061C0125CD00EA +S3061C0125CE00E9 +S3061C0125CF00E8 +S3061C0125D000E7 +S3061C0125D100E6 +S3061C0125D200E5 +S3061C0125D300E4 +S3061C0125D400E3 +S3061C0125D500E2 +S3061C0125D600E1 +S3061C0125D700E0 +S3061C0125D800DF +S3061C0125D900DE +S3061C0125DA00DD +S3061C0125DB00DC +S3061C0125DC00DB +S3061C0125DD00DA +S3061C0125DE00D9 +S3061C0125DF00D8 +S3061C0125E000D7 +S3061C0125E100D6 +S3061C0125E200D5 +S3061C0125E300D4 +S3061C0125E400D3 +S3061C0125E500D2 +S3061C0125E600D1 +S3061C0125E700D0 +S3061C0125E800CF +S3061C0125E900CE +S3061C0125EA00CD +S3061C0125EB00CC +S3061C0125EC00CB +S3061C0125ED00CA +S3061C0125EE00C9 +S3061C0125EF00C8 +S3061C0125F000C7 +S3061C0125F100C6 +S3061C0125F200C5 +S3061C0125F300C4 +S3061C0125F400C3 +S3061C0125F500C2 +S3061C0125F600C1 +S3061C0125F700C0 +S3061C0125F800BF +S3061C0125F900BE +S3061C0125FA00BD +S3061C0125FB00BC +S3061C0125FC00BB +S3061C0125FD00BA +S3061C0125FE00B9 +S3061C0125FF00B8 +S3061C01260000B6 +S3061C01260100B5 +S3061C01260200B4 +S3061C01260300B3 +S3061C01260400B2 +S3061C01260500B1 +S3061C01260600B0 +S3061C01260700AF +S3061C01260800AE +S3061C01260900AD +S3061C01260A00AC +S3061C01260B00AB +S3061C01260C00AA +S3061C01260D00A9 +S3061C01260E00A8 +S3061C01260F00A7 +S3061C01261000A6 +S3061C01261100A5 +S3061C01261200A4 +S3061C01261300A3 +S3061C01261400A2 +S3061C01261500A1 +S3061C01261600A0 +S3061C012617009F +S3061C012618009E +S3061C012619009D +S3061C01261A009C +S3061C01261B009B +S3061C01261C009A +S3061C01261D0099 +S3061C01261E0098 +S3061C01261F0097 +S3061C0126200096 +S3061C0126210095 +S3061C0126220094 +S3061C0126230093 +S3061C0126240092 +S3061C0126250091 +S3061C0126260090 +S3061C012627008F +S3061C012628008E +S3061C012629008D +S3061C01262A008C +S3061C01262B008B +S3061C01262C008A +S3061C01262D0089 +S3061C01262E0088 +S3061C01262F0087 +S3061C0126300086 +S3061C0126310085 +S3061C0126320084 +S3061C0126330083 +S3061C0126340082 +S3061C0126350081 +S3061C0126360080 +S3061C012637007F +S3061C012638007E +S3061C012639007D +S3061C01263A007C +S3061C01263B007B +S3061C01263C007A +S3061C01263D0079 +S3061C01263E0078 +S3061C01263F0077 +S3061C0126400076 +S3061C0126410075 +S3061C0126420074 +S3061C0126430073 +S3061C0126440072 +S3061C0126450071 +S3061C0126460070 +S3061C012647006F +S3061C012648006E +S3061C012649006D +S3061C01264A006C +S3061C01264B006B +S3061C01264C006A +S3061C01264D0069 +S3061C01264E0068 +S3061C01264F0067 +S3061C0126500066 +S3061C0126510065 +S3061C0126520064 +S3061C0126530063 +S3061C0126540062 +S3061C0126550061 +S3061C0126560060 +S3061C012657005F +S3061C012658005E +S3061C012659005D +S3061C01265A005C +S3061C01265B005B +S3061C01265C005A +S3061C01265D0059 +S3061C01265E0058 +S3061C01265F0057 +S3061C0126600056 +S3061C0126610055 +S3061C0126620054 +S3061C0126630053 +S3061C0126640052 +S3061C0126650051 +S3061C0126660050 +S3061C012667004F +S3061C012668004E +S3061C012669004D +S3061C01266A004C +S3061C01266B004B +S3061C01266C004A +S3061C01266D0049 +S3061C01266E0048 +S3061C01266F0047 +S3061C0126700046 +S3061C0126710045 +S3061C0126720044 +S3061C0126730043 +S3061C0126740042 +S3061C0126750041 +S3061C0126760040 +S3061C012677003F +S3061C012678003E +S3061C012679003D +S3061C01267A003C +S3061C01267B003B +S3061C01267C003A +S3061C01267D0039 +S3061C01267E0038 +S3061C01267F0037 +S3061C0126800036 +S3061C0126810035 +S3061C0126820034 +S3061C0126830033 +S3061C0126840032 +S3061C0126850031 +S3061C0126860030 +S3061C012687002F +S3061C012688002E +S3061C012689002D +S3061C01268A002C +S3061C01268B002B +S3061C01268C002A +S3061C01268D0029 +S3061C01268E0028 +S3061C01268F0027 +S3061C0126900026 +S3061C0126910025 +S3061C0126920024 +S3061C0126930023 +S3061C0126940022 +S3061C0126950021 +S3061C0126960020 +S3061C012697001F +S3061C012698001E +S3061C012699001D +S3061C01269A001C +S3061C01269B001B +S3061C01269C001A +S3061C01269D0019 +S3061C01269E0018 +S3061C01269F0017 +S3061C0126A00016 +S3061C0126A10015 +S3061C0126A20014 +S3061C0126A30013 +S3061C0126A40012 +S3061C0126A50011 +S3061C0126A60010 +S3061C0126A7000F +S3061C0126A8000E +S3061C0126A9000D +S3061C0126AA000C +S3061C0126AB000B +S3061C0126AC000A +S3061C0126AD0009 +S3061C0126AE0008 +S3061C0126AF0007 +S3061C0126B00006 +S3061C0126B10005 +S3061C0126B20004 +S3061C0126B30003 +S3061C0126B40002 +S3061C0126B50001 +S3061C0126B60000 +S3061C0126B700FF +S3061C0126B800FE +S3061C0126B900FD +S3061C0126BA00FC +S3061C0126BB00FB +S3061C0126BC00FA +S3061C0126BD00F9 +S3061C0126BE00F8 +S3061C0126BF00F7 +S3061C0126C000F6 +S3061C0126C100F5 +S3061C0126C200F4 +S3061C0126C300F3 +S3061C0126C400F2 +S3061C0126C500F1 +S3061C0126C600F0 +S3061C0126C700EF +S3061C0126C800EE +S3061C0126C900ED +S3061C0126CA00EC +S3061C0126CB00EB +S3061C0126CC00EA +S3061C0126CD00E9 +S3061C0126CE00E8 +S3061C0126CF00E7 +S3061C0126D000E6 +S3061C0126D100E5 +S3061C0126D200E4 +S3061C0126D300E3 +S3061C0126D400E2 +S3061C0126D500E1 +S3061C0126D600E0 +S3061C0126D700DF +S3061C0126D800DE +S3061C0126D900DD +S3061C0126DA00DC +S3061C0126DB00DB +S3061C0126DC00DA +S3061C0126DD00D9 +S3061C0126DE00D8 +S3061C0126DF00D7 +S3061C0126E000D6 +S3061C0126E100D5 +S3061C0126E200D4 +S3061C0126E300D3 +S3061C0126E400D2 +S3061C0126E500D1 +S3061C0126E600D0 +S3061C0126E700CF +S3061C0126E800CE +S3061C0126E900CD +S3061C0126EA00CC +S3061C0126EB00CB +S3061C0126EC00CA +S3061C0126ED00C9 +S3061C0126EE00C8 +S3061C0126EF00C7 +S3061C0126F000C6 +S3061C0126F100C5 +S3061C0126F200C4 +S3061C0126F300C3 +S3061C0126F400C2 +S3061C0126F500C1 +S3061C0126F600C0 +S3061C0126F700BF +S3061C0126F800BE +S3061C0126F900BD +S3061C0126FA00BC +S3061C0126FB00BB +S3061C0126FC00BA +S3061C0126FD00B9 +S3061C0126FE00B8 +S3061C0126FF00B7 +S3061C01270000B5 +S3061C01270100B4 +S3061C01270200B3 +S3061C01270300B2 +S3061C01270400B1 +S3061C01270500B0 +S3061C01270600AF +S3061C01270700AE +S3061C01270800AD +S3061C01270900AC +S3061C01270A00AB +S3061C01270B00AA +S3061C01270C00A9 +S3061C01270D00A8 +S3061C01270E00A7 +S3061C01270F00A6 +S3061C01271000A5 +S3061C01271100A4 +S3061C01271200A3 +S3061C01271300A2 +S3061C01271400A1 +S3061C01271500A0 +S3061C012716009F +S3061C012717009E +S3061C012718009D +S3061C012719009C +S3061C01271A009B +S3061C01271B009A +S3061C01271C0099 +S3061C01271D0098 +S3061C01271E0097 +S3061C01271F0096 +S3061C0127200095 +S3061C0127210094 +S3061C0127220093 +S3061C0127230092 +S3061C0127240091 +S3061C0127250090 +S3061C012726008F +S3061C012727008E +S3061C012728008D +S3061C012729008C +S3061C01272A008B +S3061C01272B008A +S3061C01272C0089 +S3061C01272D0088 +S3061C01272E0087 +S3061C01272F0086 +S3061C0127300085 +S3061C0127310084 +S3061C0127320083 +S3061C0127330082 +S3061C0127340081 +S3061C0127350080 +S3061C012736007F +S3061C012737007E +S3061C012738007D +S3061C012739007C +S3061C01273A007B +S3061C01273B007A +S3061C01273C0079 +S3061C01273D0078 +S3061C01273E0077 +S3061C01273F0076 +S3061C0127400075 +S3061C0127410074 +S3061C0127420073 +S3061C0127430072 +S3061C0127440071 +S3061C0127450070 +S3061C012746006F +S3061C012747006E +S3061C012748006D +S3061C012749006C +S3061C01274A006B +S3061C01274B006A +S3061C01274C0069 +S3061C01274D0068 +S3061C01274E0067 +S3061C01274F0066 +S3061C0127500065 +S3061C0127510064 +S3061C0127520063 +S3061C0127530062 +S3061C0127540061 +S3061C0127550060 +S3061C012756005F +S3061C012757005E +S3061C012758005D +S3061C012759005C +S3061C01275A005B +S3061C01275B005A +S3061C01275C0059 +S3061C01275D0058 +S3061C01275E0057 +S3061C01275F0056 +S3061C0127600055 +S3061C0127610054 +S3061C0127620053 +S3061C0127630052 +S3061C0127640051 +S3061C0127650050 +S3061C012766004F +S3061C012767004E +S3061C012768004D +S3061C012769004C +S3061C01276A004B +S3061C01276B004A +S3061C01276C0049 +S3061C01276D0048 +S3061C01276E0047 +S3061C01276F0046 +S3061C0127700045 +S3061C0127710044 +S3061C0127720043 +S3061C0127730042 +S3061C0127740041 +S3061C0127750040 +S3061C012776003F +S3061C012777003E +S3061C012778003D +S3061C012779003C +S3061C01277A003B +S3061C01277B003A +S3061C01277C0039 +S3061C01277D0038 +S3061C01277E0037 +S3061C01277F0036 +S3061C0127800035 +S3061C0127810034 +S3061C0127820033 +S3061C0127830032 +S3061C0127840031 +S3061C0127850030 +S3061C012786002F +S3061C012787002E +S3061C012788002D +S3061C012789002C +S3061C01278A002B +S3061C01278B002A +S3061C01278C0029 +S3061C01278D0028 +S3061C01278E0027 +S3061C01278F0026 +S3061C0127900025 +S3061C0127910024 +S3061C0127920023 +S3061C0127930022 +S3061C0127940021 +S3061C0127950020 +S3061C012796001F +S3061C012797001E +S3061C012798001D +S3061C012799001C +S3061C01279A001B +S3061C01279B001A +S3061C01279C0019 +S3061C01279D0018 +S3061C01279E0017 +S3061C01279F0016 +S3061C0127A00015 +S3061C0127A10014 +S3061C0127A20013 +S3061C0127A30012 +S3061C0127A40011 +S3061C0127A50010 +S3061C0127A6000F +S3061C0127A7000E +S3061C0127A8000D +S3061C0127A9000C +S3061C0127AA000B +S3061C0127AB000A +S3061C0127AC0009 +S3061C0127AD0008 +S3061C0127AE0007 +S3061C0127AF0006 +S3061C0127B00005 +S3061C0127B10004 +S3061C0127B20003 +S3061C0127B30002 +S3061C0127B40001 +S3061C0127B50000 +S3061C0127B600FF +S3061C0127B700FE +S3061C0127B800FD +S3061C0127B900FC +S3061C0127BA00FB +S3061C0127BB00FA +S3061C0127BC00F9 +S3061C0127BD00F8 +S3061C0127BE00F7 +S3061C0127BF00F6 +S3061C0127C000F5 +S3061C0127C100F4 +S3061C0127C200F3 +S3061C0127C300F2 +S3061C0127C400F1 +S3061C0127C500F0 +S3061C0127C600EF +S3061C0127C700EE +S3061C0127C800ED +S3061C0127C900EC +S3061C0127CA00EB +S3061C0127CB00EA +S3061C0127CC00E9 +S3061C0127CD00E8 +S3061C0127CE00E7 +S3061C0127CF00E6 +S3061C0127D000E5 +S3061C0127D100E4 +S3061C0127D200E3 +S3061C0127D300E2 +S3061C0127D400E1 +S3061C0127D500E0 +S3061C0127D600DF +S3061C0127D700DE +S3061C0127D800DD +S3061C0127D900DC +S3061C0127DA00DB +S3061C0127DB00DA +S3061C0127DC00D9 +S3061C0127DD00D8 +S3061C0127DE00D7 +S3061C0127DF00D6 +S3061C0127E000D5 +S3061C0127E100D4 +S3061C0127E200D3 +S3061C0127E300D2 +S3061C0127E400D1 +S3061C0127E500D0 +S3061C0127E600CF +S3061C0127E700CE +S3061C0127E800CD +S3061C0127E900CC +S3061C0127EA00CB +S3061C0127EB00CA +S3061C0127EC00C9 +S3061C0127ED00C8 +S3061C0127EE00C7 +S3061C0127EF00C6 +S3061C0127F000C5 +S3061C0127F100C4 +S3061C0127F200C3 +S3061C0127F300C2 +S3061C0127F400C1 +S3061C0127F500C0 +S3061C0127F600BF +S3061C0127F700BE +S3061C0127F800BD +S3061C0127F900BC +S3061C0127FA00BB +S3061C0127FB00BA +S3061C0127FC00B9 +S3061C0127FD00B8 +S3061C0127FE00B7 +S3061C0127FF00B6 +S3061C01280000B4 +S3061C01280100B3 +S3061C01280200B2 +S3061C01280300B1 +S3061C01280400B0 +S3061C01280500AF +S3061C01280600AE +S3061C01280700AD +S3061C01280800AC +S3061C01280900AB +S3061C01280A00AA +S3061C01280B00A9 +S3061C01280C00A8 +S3061C01280D00A7 +S3061C01280E00A6 +S3061C01280F00A5 +S3061C01281000A4 +S3061C01281100A3 +S3061C01281200A2 +S3061C01281300A1 +S3061C01281400A0 +S3061C012815009F +S3061C012816009E +S3061C012817009D +S3061C012818009C +S3061C012819009B +S3061C01281A009A +S3061C01281B0099 +S3061C01281C0098 +S3061C01281D0097 +S3061C01281E0096 +S3061C01281F0095 +S3061C0128200094 +S3061C0128210093 +S3061C0128220092 +S3061C0128230091 +S3061C0128240090 +S3061C012825008F +S3061C012826008E +S3061C012827008D +S3061C012828008C +S3061C012829008B +S3061C01282A008A +S3061C01282B0089 +S3061C01282C0088 +S3061C01282D0087 +S3061C01282E0086 +S3061C01282F0085 +S3061C0128300084 +S3061C0128310083 +S3061C0128320082 +S3061C0128330081 +S3061C0128340080 +S3061C012835007F +S3061C012836007E +S3061C012837007D +S3061C012838007C +S3061C012839007B +S3061C01283A007A +S3061C01283B0079 +S3061C01283C0078 +S3061C01283D0077 +S3061C01283E0076 +S3061C01283F0075 +S3061C0128400074 +S3061C0128410073 +S3061C0128420072 +S3061C0128430071 +S3061C0128440070 +S3061C012845006F +S3061C012846006E +S3061C012847006D +S3061C012848006C +S3061C012849006B +S3061C01284A006A +S3061C01284B0069 +S3061C01284C0068 +S3061C01284D0067 +S3061C01284E0066 +S3061C01284F0065 +S3061C0128500064 +S3061C0128510063 +S3061C0128520062 +S3061C0128530061 +S3061C0128540060 +S3061C012855005F +S3061C012856005E +S3061C012857005D +S3061C012858005C +S3061C012859005B +S3061C01285A005A +S3061C01285B0059 +S3061C01285C0058 +S3061C01285D0057 +S3061C01285E0056 +S3061C01285F0055 +S3061C0128600054 +S3061C0128610053 +S3061C0128620052 +S3061C0128630051 +S3061C0128640050 +S3061C012865004F +S3061C012866004E +S3061C012867004D +S3061C012868004C +S3061C012869004B +S3061C01286A004A +S3061C01286B0049 +S3061C01286C0048 +S3061C01286D0047 +S3061C01286E0046 +S3061C01286F0045 +S3061C0128700044 +S3061C0128710043 +S3061C0128720042 +S3061C0128730041 +S3061C0128740040 +S3061C012875003F +S3061C012876003E +S3061C012877003D +S3061C012878003C +S3061C012879003B +S3061C01287A003A +S3061C01287B0039 +S3061C01287C0038 +S3061C01287D0037 +S3061C01287E0036 +S3061C01287F0035 +S3061C0128800034 +S3061C0128810033 +S3061C0128820032 +S3061C0128830031 +S3061C0128840030 +S3061C012885002F +S3061C012886002E +S3061C012887002D +S3061C012888002C +S3061C012889002B +S3061C01288A002A +S3061C01288B0029 +S3061C01288C0028 +S3061C01288D0027 +S3061C01288E0026 +S3061C01288F0025 +S3061C0128900024 +S3061C0128910023 +S3061C0128920022 +S3061C0128930021 +S3061C0128940020 +S3061C012895001F +S3061C012896001E +S3061C012897001D +S3061C012898001C +S3061C012899001B +S3061C01289A001A +S3061C01289B0019 +S3061C01289C0018 +S3061C01289D0017 +S3061C01289E0016 +S3061C01289F0015 +S3061C0128A00014 +S3061C0128A10013 +S3061C0128A20012 +S3061C0128A30011 +S3061C0128A40010 +S3061C0128A5000F +S3061C0128A6000E +S3061C0128A7000D +S3061C0128A8000C +S3061C0128A9000B +S3061C0128AA000A +S3061C0128AB0009 +S3061C0128AC0008 +S3061C0128AD0007 +S3061C0128AE0006 +S3061C0128AF0005 +S3061C0128B00004 +S3061C0128B10003 +S3061C0128B20002 +S3061C0128B30001 +S3061C0128B40000 +S3061C0128B500FF +S3061C0128B600FE +S3061C0128B700FD +S3061C0128B800FC +S3061C0128B900FB +S3061C0128BA00FA +S3061C0128BB00F9 +S3061C0128BC00F8 +S3061C0128BD00F7 +S3061C0128BE00F6 +S3061C0128BF00F5 +S3061C0128C000F4 +S3061C0128C100F3 +S3061C0128C200F2 +S3061C0128C300F1 +S3061C0128C400F0 +S3061C0128C500EF +S3061C0128C600EE +S3061C0128C700ED +S3061C0128C800EC +S3061C0128C900EB +S3061C0128CA00EA +S3061C0128CB00E9 +S3061C0128CC00E8 +S3061C0128CD00E7 +S3061C0128CE00E6 +S3061C0128CF00E5 +S3061C0128D000E4 +S3061C0128D100E3 +S3061C0128D200E2 +S3061C0128D300E1 +S3061C0128D400E0 +S3061C0128D500DF +S3061C0128D600DE +S3061C0128D700DD +S3061C0128D800DC +S3061C0128D900DB +S3061C0128DA00DA +S3061C0128DB00D9 +S3061C0128DC00D8 +S3061C0128DD00D7 +S3061C0128DE00D6 +S3061C0128DF00D5 +S3061C0128E000D4 +S3061C0128E100D3 +S3061C0128E200D2 +S3061C0128E300D1 +S3061C0128E400D0 +S3061C0128E500CF +S3061C0128E600CE +S3061C0128E700CD +S3061C0128E800CC +S3061C0128E900CB +S3061C0128EA00CA +S3061C0128EB00C9 +S3061C0128EC00C8 +S3061C0128ED00C7 +S3061C0128EE00C6 +S3061C0128EF00C5 +S3061C0128F000C4 +S3061C0128F100C3 +S3061C0128F200C2 +S3061C0128F300C1 +S3061C0128F400C0 +S3061C0128F500BF +S3061C0128F600BE +S3061C0128F700BD +S3061C0128F800BC +S3061C0128F900BB +S3061C0128FA00BA +S3061C0128FB00B9 +S3061C0128FC00B8 +S3061C0128FD00B7 +S3061C0128FE00B6 +S3061C0128FF00B5 +S3061C01290000B3 +S3061C01290100B2 +S3061C01290200B1 +S3061C01290300B0 +S3061C01290400AF +S3061C01290500AE +S3061C01290600AD +S3061C01290700AC +S3061C01290800AB +S3061C01290900AA +S3061C01290A00A9 +S3061C01290B00A8 +S3061C01290C00A7 +S3061C01290D00A6 +S3061C01290E00A5 +S3061C01290F00A4 +S3061C01291000A3 +S3061C01291100A2 +S3061C01291200A1 +S3061C01291300A0 +S3061C012914009F +S3061C012915009E +S3061C012916009D +S3061C012917009C +S3061C012918009B +S3061C012919009A +S3061C01291A0099 +S3061C01291B0098 +S3061C01291C0097 +S3061C01291D0096 +S3061C01291E0095 +S3061C01291F0094 +S3061C0129200093 +S3061C0129210092 +S3061C0129220091 +S3061C0129230090 +S3061C012924008F +S3061C012925008E +S3061C012926008D +S3061C012927008C +S3061C012928008B +S3061C012929008A +S3061C01292A0089 +S3061C01292B0088 +S3061C01292C0087 +S3061C01292D0086 +S3061C01292E0085 +S3061C01292F0084 +S3061C0129300083 +S3061C0129310082 +S3061C0129320081 +S3061C0129330080 +S3061C012934007F +S3061C012935007E +S3061C012936007D +S3061C012937007C +S3061C012938007B +S3061C012939007A +S3061C01293A0079 +S3061C01293B0078 +S3061C01293C0077 +S3061C01293D0076 +S3061C01293E0075 +S3061C01293F0074 +S3061C0129400073 +S3061C0129410072 +S3061C0129420071 +S3061C0129430070 +S3061C012944006F +S3061C012945006E +S3061C012946006D +S3061C012947006C +S3061C012948006B +S3061C012949006A +S3061C01294A0069 +S3061C01294B0068 +S3061C01294C0067 +S3061C01294D0066 +S3061C01294E0065 +S3061C01294F0064 +S3061C0129500063 +S3061C0129510062 +S3061C0129520061 +S3061C0129530060 +S3061C012954005F +S3061C012955005E +S3061C012956005D +S3061C012957005C +S3061C012958005B +S3061C012959005A +S3061C01295A0059 +S3061C01295B0058 +S3061C01295C0057 +S3061C01295D0056 +S3061C01295E0055 +S3061C01295F0054 +S3061C0129600053 +S3061C0129610052 +S3061C0129620051 +S3061C0129630050 +S3061C012964004F +S3061C012965004E +S3061C012966004D +S3061C012967004C +S3061C012968004B +S3061C012969004A +S3061C01296A0049 +S3061C01296B0048 +S3061C01296C0047 +S3061C01296D0046 +S3061C01296E0045 +S3061C01296F0044 +S3061C0129700043 +S3061C0129710042 +S3061C0129720041 +S3061C0129730040 +S3061C012974003F +S3061C012975003E +S3061C012976003D +S3061C012977003C +S3061C012978003B +S3061C012979003A +S3061C01297A0039 +S3061C01297B0038 +S3061C01297C0037 +S3061C01297D0036 +S3061C01297E0035 +S3061C01297F0034 +S3061C0129800033 +S3061C0129810032 +S3061C0129820031 +S3061C0129830030 +S3061C012984002F +S3061C012985002E +S3061C012986002D +S3061C012987002C +S3061C012988002B +S3061C012989002A +S3061C01298A0029 +S3061C01298B0028 +S3061C01298C0027 +S3061C01298D0026 +S3061C01298E0025 +S3061C01298F0024 +S3061C0129900023 +S3061C0129910022 +S3061C0129920021 +S3061C0129930020 +S3061C012994001F +S3061C012995001E +S3061C012996001D +S3061C012997001C +S3061C012998001B +S3061C012999001A +S3061C01299A0019 +S3061C01299B0018 +S3061C01299C0017 +S3061C01299D0016 +S3061C01299E0015 +S3061C01299F0014 +S3061C0129A00013 +S3061C0129A10012 +S3061C0129A20011 +S3061C0129A30010 +S3061C0129A4000F +S3061C0129A5000E +S3061C0129A6000D +S3061C0129A7000C +S3061C0129A8000B +S3061C0129A9000A +S3061C0129AA0009 +S3061C0129AB0008 +S3061C0129AC0007 +S3061C0129AD0006 +S3061C0129AE0005 +S3061C0129AF0004 +S3061C0129B00003 +S3061C0129B10002 +S3061C0129B20001 +S3061C0129B30000 +S3061C0129B400FF +S3061C0129B500FE +S3061C0129B600FD +S3061C0129B700FC +S3061C0129B800FB +S3061C0129B900FA +S3061C0129BA00F9 +S3061C0129BB00F8 +S3061C0129BC00F7 +S3061C0129BD00F6 +S3061C0129BE00F5 +S3061C0129BF00F4 +S3061C0129C000F3 +S3061C0129C100F2 +S3061C0129C200F1 +S3061C0129C300F0 +S3061C0129C400EF +S3061C0129C500EE +S3061C0129C600ED +S3061C0129C700EC +S3061C0129C800EB +S3061C0129C900EA +S3061C0129CA00E9 +S3061C0129CB00E8 +S3061C0129CC00E7 +S3061C0129CD00E6 +S3061C0129CE00E5 +S3061C0129CF00E4 +S3061C0129D000E3 +S3061C0129D100E2 +S3061C0129D200E1 +S3061C0129D300E0 +S3061C0129D400DF +S3061C0129D500DE +S3061C0129D600DD +S3061C0129D700DC +S3061C0129D800DB +S3061C0129D900DA +S3061C0129DA00D9 +S3061C0129DB00D8 +S3061C0129DC00D7 +S3061C0129DD00D6 +S3061C0129DE00D5 +S3061C0129DF00D4 +S3061C0129E000D3 +S3061C0129E100D2 +S3061C0129E200D1 +S3061C0129E300D0 +S3061C0129E400CF +S3061C0129E500CE +S3061C0129E600CD +S3061C0129E700CC +S3061C0129E800CB +S3061C0129E900CA +S3061C0129EA00C9 +S3061C0129EB00C8 +S3061C0129EC00C7 +S3061C0129ED00C6 +S3061C0129EE00C5 +S3061C0129EF00C4 +S3061C0129F000C3 +S3061C0129F100C2 +S3061C0129F200C1 +S3061C0129F300C0 +S3061C0129F400BF +S3061C0129F500BE +S3061C0129F600BD +S3061C0129F700BC +S3061C0129F800BB +S3061C0129F900BA +S3061C0129FA00B9 +S3061C0129FB00B8 +S3061C0129FC00B7 +S3061C0129FD00B6 +S3061C0129FE00B5 +S3061C0129FF00B4 +S3061C012A0000B2 +S3061C012A0100B1 +S3061C012A0200B0 +S3061C012A0300AF +S3061C012A0400AE +S3061C012A0500AD +S3061C012A0600AC +S3061C012A0700AB +S3061C012A0800AA +S3061C012A0900A9 +S3061C012A0A00A8 +S3061C012A0B00A7 +S3061C012A0C00A6 +S3061C012A0D00A5 +S3061C012A0E00A4 +S3061C012A0F00A3 +S3061C012A1000A2 +S3061C012A1100A1 +S3061C012A1200A0 +S3061C012A13009F +S3061C012A14009E +S3061C012A15009D +S3061C012A16009C +S3061C012A17009B +S3061C012A18009A +S3061C012A190099 +S3061C012A1A0098 +S3061C012A1B0097 +S3061C012A1C0096 +S3061C012A1D0095 +S3061C012A1E0094 +S3061C012A1F0093 +S3061C012A200092 +S3061C012A210091 +S3061C012A220090 +S3061C012A23008F +S3061C012A24008E +S3061C012A25008D +S3061C012A26008C +S3061C012A27008B +S3061C012A28008A +S3061C012A290089 +S3061C012A2A0088 +S3061C012A2B0087 +S3061C012A2C0086 +S3061C012A2D0085 +S3061C012A2E0084 +S3061C012A2F0083 +S3061C012A300082 +S3061C012A310081 +S3061C012A320080 +S3061C012A33007F +S3061C012A34007E +S3061C012A35007D +S3061C012A36007C +S3061C012A37007B +S3061C012A38007A +S3061C012A390079 +S3061C012A3A0078 +S3061C012A3B0077 +S3061C012A3C0076 +S3061C012A3D0075 +S3061C012A3E0074 +S3061C012A3F0073 +S3061C012A400072 +S3061C012A410071 +S3061C012A420070 +S3061C012A43006F +S3061C012A44006E +S3061C012A45006D +S3061C012A46006C +S3061C012A47006B +S3061C012A48006A +S3061C012A490069 +S3061C012A4A0068 +S3061C012A4B0067 +S3061C012A4C0066 +S3061C012A4D0065 +S3061C012A4E0064 +S3061C012A4F0063 +S3061C012A500062 +S3061C012A510061 +S3061C012A520060 +S3061C012A53005F +S3061C012A54005E +S3061C012A55005D +S3061C012A56005C +S3061C012A57005B +S3061C012A58005A +S3061C012A590059 +S3061C012A5A0058 +S3061C012A5B0057 +S3061C012A5C0056 +S3061C012A5D0055 +S3061C012A5E0054 +S3061C012A5F0053 +S3061C012A600052 +S3061C012A610051 +S3061C012A620050 +S3061C012A63004F +S3061C012A64004E +S3061C012A65004D +S3061C012A66004C +S3061C012A67004B +S3061C012A68004A +S3061C012A690049 +S3061C012A6A0048 +S3061C012A6B0047 +S3061C012A6C0046 +S3061C012A6D0045 +S3061C012A6E0044 +S3061C012A6F0043 +S3061C012A700042 +S3061C012A710041 +S3061C012A720040 +S3061C012A73003F +S3061C012A74003E +S3061C012A75003D +S3061C012A76003C +S3061C012A77003B +S3061C012A78003A +S3061C012A790039 +S3061C012A7A0038 +S3061C012A7B0037 +S3061C012A7C0036 +S3061C012A7D0035 +S3061C012A7E0034 +S3061C012A7F0033 +S3061C012A800032 +S3061C012A810031 +S3061C012A820030 +S3061C012A83002F +S3061C012A84002E +S3061C012A85002D +S3061C012A86002C +S3061C012A87002B +S3061C012A88002A +S3061C012A890029 +S3061C012A8A0028 +S3061C012A8B0027 +S3061C012A8C0026 +S3061C012A8D0025 +S3061C012A8E0024 +S3061C012A8F0023 +S3061C012A900022 +S3061C012A910021 +S3061C012A920020 +S3061C012A93001F +S3061C012A94001E +S3061C012A95001D +S3061C012A96001C +S3061C012A97001B +S3061C012A98001A +S3061C012A990019 +S3061C012A9A0018 +S3061C012A9B0017 +S3061C012A9C0016 +S3061C012A9D0015 +S3061C012A9E0014 +S3061C012A9F0013 +S3061C012AA00012 +S3061C012AA10011 +S3061C012AA20010 +S3061C012AA3000F +S3061C012AA4000E +S3061C012AA5000D +S3061C012AA6000C +S3061C012AA7000B +S3061C012AA8000A +S3061C012AA90009 +S3061C012AAA0008 +S3061C012AAB0007 +S3061C012AAC0006 +S3061C012AAD0005 +S3061C012AAE0004 +S3061C012AAF0003 +S3061C012AB00002 +S3061C012AB10001 +S3061C012AB20000 +S3061C012AB300FF +S3061C012AB400FE +S3061C012AB500FD +S3061C012AB600FC +S3061C012AB700FB +S3061C012AB800FA +S3061C012AB900F9 +S3061C012ABA00F8 +S3061C012ABB00F7 +S3061C012ABC00F6 +S3061C012ABD00F5 +S3061C012ABE00F4 +S3061C012ABF00F3 +S3061C012AC000F2 +S3061C012AC100F1 +S3061C012AC200F0 +S3061C012AC300EF +S3061C012AC400EE +S3061C012AC500ED +S3061C012AC600EC +S3061C012AC700EB +S3061C012AC800EA +S3061C012AC900E9 +S3061C012ACA00E8 +S3061C012ACB00E7 +S3061C012ACC00E6 +S3061C012ACD00E5 +S3061C012ACE00E4 +S3061C012ACF00E3 +S3061C012AD000E2 +S3061C012AD100E1 +S3061C012AD200E0 +S3061C012AD300DF +S3061C012AD400DE +S3061C012AD500DD +S3061C012AD600DC +S3061C012AD700DB +S3061C012AD800DA +S3061C012AD900D9 +S3061C012ADA00D8 +S3061C012ADB00D7 +S3061C012ADC00D6 +S3061C012ADD00D5 +S3061C012ADE00D4 +S3061C012ADF00D3 +S3061C012AE000D2 +S3061C012AE100D1 +S3061C012AE200D0 +S3061C012AE300CF +S3061C012AE400CE +S3061C012AE500CD +S3061C012AE600CC +S3061C012AE700CB +S3061C012AE800CA +S3061C012AE900C9 +S3061C012AEA00C8 +S3061C012AEB00C7 +S3061C012AEC00C6 +S3061C012AED00C5 +S3061C012AEE00C4 +S3061C012AEF00C3 +S3061C012AF000C2 +S3061C012AF100C1 +S3061C012AF200C0 +S3061C012AF300BF +S3061C012AF400BE +S3061C012AF500BD +S3061C012AF600BC +S3061C012AF700BB +S3061C012AF800BA +S3061C012AF900B9 +S3061C012AFA00B8 +S3061C012AFB00B7 +S3061C012AFC00B6 +S3061C012AFD00B5 +S3061C012AFE00B4 +S3061C012AFF00B3 +S3061C012B0000B1 +S3061C012B0100B0 +S3061C012B0200AF +S3061C012B0300AE +S3061C012B0400AD +S3061C012B0500AC +S3061C012B0600AB +S3061C012B0700AA +S3061C012B0800A9 +S3061C012B0900A8 +S3061C012B0A00A7 +S3061C012B0B00A6 +S3061C012B0C00A5 +S3061C012B0D00A4 +S3061C012B0E00A3 +S3061C012B0F00A2 +S3061C012B1000A1 +S3061C012B1100A0 +S3061C012B12009F +S3061C012B13009E +S3061C012B14009D +S3061C012B15009C +S3061C012B16009B +S3061C012B17009A +S3061C012B180099 +S3061C012B190098 +S3061C012B1A0097 +S3061C012B1B0096 +S3061C012B1C0095 +S3061C012B1D0094 +S3061C012B1E0093 +S3061C012B1F0092 +S3061C012B200091 +S3061C012B210090 +S3061C012B22008F +S3061C012B23008E +S3061C012B24008D +S3061C012B25008C +S3061C012B26008B +S3061C012B27008A +S3061C012B280089 +S3061C012B290088 +S3061C012B2A0087 +S3061C012B2B0086 +S3061C012B2C0085 +S3061C012B2D0084 +S3061C012B2E0083 +S3061C012B2F0082 +S3061C012B300081 +S3061C012B310080 +S3061C012B32007F +S3061C012B33007E +S3061C012B34007D +S3061C012B35007C +S3061C012B36007B +S3061C012B37007A +S3061C012B380079 +S3061C012B390078 +S3061C012B3A0077 +S3061C012B3B0076 +S3061C012B3C0075 +S3061C012B3D0074 +S3061C012B3E0073 +S3061C012B3F0072 +S3061C012B400071 +S3061C012B410070 +S3061C012B42006F +S3061C012B43006E +S3061C012B44006D +S3061C012B45006C +S3061C012B46006B +S3061C012B47006A +S3061C012B480069 +S3061C012B490068 +S3061C012B4A0067 +S3061C012B4B0066 +S3061C012B4C0065 +S3061C012B4D0064 +S3061C012B4E0063 +S3061C012B4F0062 +S3061C012B500061 +S3061C012B510060 +S3061C012B52005F +S3061C012B53005E +S3061C012B54005D +S3061C012B55005C +S3061C012B56005B +S3061C012B57005A +S3061C012B580059 +S3061C012B590058 +S3061C012B5A0057 +S3061C012B5B0056 +S3061C012B5C0055 +S3061C012B5D0054 +S3061C012B5E0053 +S3061C012B5F0052 +S3061C012B600051 +S3061C012B610050 +S3061C012B62004F +S3061C012B63004E +S3061C012B64004D +S3061C012B65004C +S3061C012B66004B +S3061C012B67004A +S3061C012B680049 +S3061C012B690048 +S3061C012B6A0047 +S3061C012B6B0046 +S3061C012B6C0045 +S3061C012B6D0044 +S3061C012B6E0043 +S3061C012B6F0042 +S3061C012B700041 +S3061C012B710040 +S3061C012B72003F +S3061C012B73003E +S3061C012B74003D +S3061C012B75003C +S3061C012B76003B +S3061C012B77003A +S3061C012B780039 +S3061C012B790038 +S3061C012B7A0037 +S3061C012B7B0036 +S3061C012B7C0035 +S3061C012B7D0034 +S3061C012B7E0033 +S3061C012B7F0032 +S3061C012B800031 +S3061C012B810030 +S3061C012B82002F +S3061C012B83002E +S3061C012B84002D +S3061C012B85002C +S3061C012B86002B +S3061C012B87002A +S3061C012B880029 +S3061C012B890028 +S3061C012B8A0027 +S3061C012B8B0026 +S3061C012B8C0025 +S3061C012B8D0024 +S3061C012B8E0023 +S3061C012B8F0022 +S3061C012B900021 +S3061C012B910020 +S3061C012B92001F +S3061C012B93001E +S3061C012B94001D +S3061C012B95001C +S3061C012B96001B +S3061C012B97001A +S3061C012B980019 +S3061C012B990018 +S3061C012B9A0017 +S3061C012B9B0016 +S3061C012B9C0015 +S3061C012B9D0014 +S3061C012B9E0013 +S3061C012B9F0012 +S3061C012BA00011 +S3061C012BA10010 +S3061C012BA2000F +S3061C012BA3000E +S3061C012BA4000D +S3061C012BA5000C +S3061C012BA6000B +S3061C012BA7000A +S3061C012BA80009 +S3061C012BA90008 +S3061C012BAA0007 +S3061C012BAB0006 +S3061C012BAC0005 +S3061C012BAD0004 +S3061C012BAE0003 +S3061C012BAF0002 +S3061C012BB00001 +S3061C012BB10000 +S3061C012BB200FF +S3061C012BB300FE +S3061C012BB400FD +S3061C012BB500FC +S3061C012BB600FB +S3061C012BB700FA +S3061C012BB800F9 +S3061C012BB900F8 +S3061C012BBA00F7 +S3061C012BBB00F6 +S3061C012BBC00F5 +S3061C012BBD00F4 +S3061C012BBE00F3 +S3061C012BBF00F2 +S3061C012BC000F1 +S3061C012BC100F0 +S3061C012BC200EF +S3061C012BC300EE +S3061C012BC400ED +S3061C012BC500EC +S3061C012BC600EB +S3061C012BC700EA +S3061C012BC800E9 +S3061C012BC900E8 +S3061C012BCA00E7 +S3061C012BCB00E6 +S3061C012BCC00E5 +S3061C012BCD00E4 +S3061C012BCE00E3 +S3061C012BCF00E2 +S3061C012BD000E1 +S3061C012BD100E0 +S3061C012BD200DF +S3061C012BD300DE +S3061C012BD400DD +S3061C012BD500DC +S3061C012BD600DB +S3061C012BD700DA +S3061C012BD800D9 +S3061C012BD900D8 +S3061C012BDA00D7 +S3061C012BDB00D6 +S3061C012BDC00D5 +S3061C012BDD00D4 +S3061C012BDE00D3 +S3061C012BDF00D2 +S3061C012BE000D1 +S3061C012BE100D0 +S3061C012BE200CF +S3061C012BE300CE +S3061C012BE400CD +S3061C012BE500CC +S3061C012BE600CB +S3061C012BE700CA +S3061C012BE800C9 +S3061C012BE900C8 +S3061C012BEA00C7 +S3061C012BEB00C6 +S3061C012BEC00C5 +S3061C012BED00C4 +S3061C012BEE00C3 +S3061C012BEF00C2 +S3061C012BF000C1 +S3061C012BF100C0 +S3061C012BF200BF +S3061C012BF300BE +S3061C012BF400BD +S3061C012BF500BC +S3061C012BF600BB +S3061C012BF700BA +S3061C012BF800B9 +S3061C012BF900B8 +S3061C012BFA00B7 +S3061C012BFB00B6 +S3061C012BFC00B5 +S3061C012BFD00B4 +S3061C012BFE00B3 +S3061C012BFF00B2 +S3061C012C0000B0 +S3061C012C0100AF +S3061C012C0200AE +S3061C012C0300AD +S3061C012C0400AC +S3061C012C0500AB +S3061C012C0600AA +S3061C012C0700A9 +S3061C012C0800A8 +S3061C012C0900A7 +S3061C012C0A00A6 +S3061C012C0B00A5 +S3061C012C0C00A4 +S3061C012C0D00A3 +S3061C012C0E00A2 +S3061C012C0F00A1 +S3061C012C1000A0 +S3061C012C11009F +S3061C012C12009E +S3061C012C13009D +S3061C012C14009C +S3061C012C15009B +S3061C012C16009A +S3061C012C170099 +S3061C012C180098 +S3061C012C190097 +S3061C012C1A0096 +S3061C012C1B0095 +S3061C012C1C0094 +S3061C012C1D0093 +S3061C012C1E0092 +S3061C012C1F0091 +S3061C012C200090 +S3061C012C21008F +S3061C012C22008E +S3061C012C23008D +S3061C012C24008C +S3061C012C25008B +S3061C012C26008A +S3061C012C270089 +S3061C012C280088 +S3061C012C290087 +S3061C012C2A0086 +S3061C012C2B0085 +S3061C012C2C0084 +S3061C012C2D0083 +S3061C012C2E0082 +S3061C012C2F0081 +S3061C012C300080 +S3061C012C31007F +S3061C012C32007E +S3061C012C33007D +S3061C012C34007C +S3061C012C35007B +S3061C012C36007A +S3061C012C370079 +S3061C012C380078 +S3061C012C390077 +S3061C012C3A0076 +S3061C012C3B0075 +S3061C012C3C0074 +S3061C012C3D0073 +S3061C012C3E0072 +S3061C012C3F0071 +S3061C012C400070 +S3061C012C41006F +S3061C012C42006E +S3061C012C43006D +S3061C012C44006C +S3061C012C45006B +S3061C012C46006A +S3061C012C470069 +S3061C012C480068 +S3061C012C490067 +S3061C012C4A0066 +S3061C012C4B0065 +S3061C012C4C0064 +S3061C012C4D0063 +S3061C012C4E0062 +S3061C012C4F0061 +S3061C012C500060 +S3061C012C51005F +S3061C012C52005E +S3061C012C53005D +S3061C012C54005C +S3061C012C55005B +S3061C012C56005A +S3061C012C570059 +S3061C012C580058 +S3061C012C590057 +S3061C012C5A0056 +S3061C012C5B0055 +S3061C012C5C0054 +S3061C012C5D0053 +S3061C012C5E0052 +S3061C012C5F0051 +S3061C012C600050 +S3061C012C61004F +S3061C012C62004E +S3061C012C63004D +S3061C012C64004C +S3061C012C65004B +S3061C012C66004A +S3061C012C670049 +S3061C012C680048 +S3061C012C690047 +S3061C012C6A0046 +S3061C012C6B0045 +S3061C012C6C0044 +S3061C012C6D0043 +S3061C012C6E0042 +S3061C012C6F0041 +S3061C012C700040 +S3061C012C71003F +S3061C012C72003E +S3061C012C73003D +S3061C012C74003C +S3061C012C75003B +S3061C012C76003A +S3061C012C770039 +S3061C012C780038 +S3061C012C790037 +S3061C012C7A0036 +S3061C012C7B0035 +S3061C012C7C0034 +S3061C012C7D0033 +S3061C012C7E0032 +S3061C012C7F0031 +S3061C012C800030 +S3061C012C81002F +S3061C012C82002E +S3061C012C83002D +S3061C012C84002C +S3061C012C85002B +S3061C012C86002A +S3061C012C870029 +S3061C012C880028 +S3061C012C890027 +S3061C012C8A0026 +S3061C012C8B0025 +S3061C012C8C0024 +S3061C012C8D0023 +S3061C012C8E0022 +S3061C012C8F0021 +S3061C012C900020 +S3061C012C91001F +S3061C012C92001E +S3061C012C93001D +S3061C012C94001C +S3061C012C95001B +S3061C012C96001A +S3061C012C970019 +S3061C012C980018 +S3061C012C990017 +S3061C012C9A0016 +S3061C012C9B0015 +S3061C012C9C0014 +S3061C012C9D0013 +S3061C012C9E0012 +S3061C012C9F0011 +S3061C012CA00010 +S3061C012CA1000F +S3061C012CA2000E +S3061C012CA3000D +S3061C012CA4000C +S3061C012CA5000B +S3061C012CA6000A +S3061C012CA70009 +S3061C012CA80008 +S3061C012CA90007 +S3061C012CAA0006 +S3061C012CAB0005 +S3061C012CAC0004 +S3061C012CAD0003 +S3061C012CAE0002 +S3061C012CAF0001 +S3061C012CB00000 +S3061C012CB100FF +S3061C012CB200FE +S3061C012CB300FD +S3061C012CB400FC +S3061C012CB500FB +S3061C012CB600FA +S3061C012CB700F9 +S3061C012CB800F8 +S3061C012CB900F7 +S3061C012CBA00F6 +S3061C012CBB00F5 +S3061C012CBC00F4 +S3061C012CBD00F3 +S3061C012CBE00F2 +S3061C012CBF00F1 +S3061C012CC000F0 +S3061C012CC100EF +S3061C012CC200EE +S3061C012CC300ED +S3061C012CC400EC +S3061C012CC500EB +S3061C012CC600EA +S3061C012CC700E9 +S3061C012CC800E8 +S3061C012CC900E7 +S3061C012CCA00E6 +S3061C012CCB00E5 +S3061C012CCC00E4 +S3061C012CCD00E3 +S3061C012CCE00E2 +S3061C012CCF00E1 +S3061C012CD000E0 +S3061C012CD100DF +S3061C012CD200DE +S3061C012CD300DD +S3061C012CD400DC +S3061C012CD500DB +S3061C012CD600DA +S3061C012CD700D9 +S3061C012CD800D8 +S3061C012CD900D7 +S3061C012CDA00D6 +S3061C012CDB00D5 +S3061C012CDC00D4 +S3061C012CDD00D3 +S3061C012CDE00D2 +S3061C012CDF00D1 +S3061C012CE000D0 +S3061C012CE100CF +S3061C012CE200CE +S3061C012CE300CD +S3061C012CE400CC +S3061C012CE500CB +S3061C012CE600CA +S3061C012CE700C9 +S3061C012CE800C8 +S3061C012CE900C7 +S3061C012CEA00C6 +S3061C012CEB00C5 +S3061C012CEC00C4 +S3061C012CED00C3 +S3061C012CEE00C2 +S3061C012CEF00C1 +S3061C012CF000C0 +S3061C012CF100BF +S3061C012CF200BE +S3061C012CF300BD +S3061C012CF400BC +S3061C012CF500BB +S3061C012CF600BA +S3061C012CF700B9 +S3061C012CF800B8 +S3061C012CF900B7 +S3061C012CFA00B6 +S3061C012CFB00B5 +S3061C012CFC00B4 +S3061C012CFD00B3 +S3061C012CFE00B2 +S3061C012CFF00B1 +S3061C012D0000AF +S3061C012D0100AE +S3061C012D0200AD +S3061C012D0300AC +S3061C012D0400AB +S3061C012D0500AA +S3061C012D0600A9 +S3061C012D0700A8 +S3061C012D0800A7 +S3061C012D0900A6 +S3061C012D0A00A5 +S3061C012D0B00A4 +S3061C012D0C00A3 +S3061C012D0D00A2 +S3061C012D0E00A1 +S3061C012D0F00A0 +S3061C012D10009F +S3061C012D11009E +S3061C012D12009D +S3061C012D13009C +S3061C012D14009B +S3061C012D15009A +S3061C012D160099 +S3061C012D170098 +S3061C012D180097 +S3061C012D190096 +S3061C012D1A0095 +S3061C012D1B0094 +S3061C012D1C0093 +S3061C012D1D0092 +S3061C012D1E0091 +S3061C012D1F0090 +S3061C012D20008F +S3061C012D21008E +S3061C012D22008D +S3061C012D23008C +S3061C012D24008B +S3061C012D25008A +S3061C012D260089 +S3061C012D270088 +S3061C012D280087 +S3061C012D290086 +S3061C012D2A0085 +S3061C012D2B0084 +S3061C012D2C0083 +S3061C012D2D0082 +S3061C012D2E0081 +S3061C012D2F0080 +S3061C012D30007F +S3061C012D31007E +S3061C012D32007D +S3061C012D33007C +S3061C012D34007B +S3061C012D35007A +S3061C012D360079 +S3061C012D370078 +S3061C012D380077 +S3061C012D390076 +S3061C012D3A0075 +S3061C012D3B0074 +S3061C012D3C0073 +S3061C012D3D0072 +S3061C012D3E0071 +S3061C012D3F0070 +S3061C012D40006F +S3061C012D41006E +S3061C012D42006D +S3061C012D43006C +S3061C012D44006B +S3061C012D45006A +S3061C012D460069 +S3061C012D470068 +S3061C012D480067 +S3061C012D490066 +S3061C012D4A0065 +S3061C012D4B0064 +S3061C012D4C0063 +S3061C012D4D0062 +S3061C012D4E0061 +S3061C012D4F0060 +S3061C012D50005F +S3061C012D51005E +S3061C012D52005D +S3061C012D53005C +S3061C012D54005B +S3061C012D55005A +S3061C012D560059 +S3061C012D570058 +S3061C012D580057 +S3061C012D590056 +S3061C012D5A0055 +S3061C012D5B0054 +S3061C012D5C0053 +S3061C012D5D0052 +S3061C012D5E0051 +S3061C012D5F0050 +S3061C012D60004F +S3061C012D61004E +S3061C012D62004D +S3061C012D63004C +S3061C012D64004B +S3061C012D65004A +S3061C012D660049 +S3061C012D670048 +S3061C012D680047 +S3061C012D690046 +S3061C012D6A0045 +S3061C012D6B0044 +S3061C012D6C0043 +S3061C012D6D0042 +S3061C012D6E0041 +S3061C012D6F0040 +S3061C012D70003F +S3061C012D71003E +S3061C012D72003D +S3061C012D73003C +S3061C012D74003B +S3061C012D75003A +S3061C012D760039 +S3061C012D770038 +S3061C012D780037 +S3061C012D790036 +S3061C012D7A0035 +S3061C012D7B0034 +S3061C012D7C0033 +S3061C012D7D0032 +S3061C012D7E0031 +S3061C012D7F0030 +S3061C012D80002F +S3061C012D81002E +S3061C012D82002D +S3061C012D83002C +S3061C012D84002B +S3061C012D85002A +S3061C012D860029 +S3061C012D870028 +S3061C012D880027 +S3061C012D890026 +S3061C012D8A0025 +S3061C012D8B0024 +S3061C012D8C0023 +S3061C012D8D0022 +S3061C012D8E0021 +S3061C012D8F0020 +S3061C012D90001F +S3061C012D91001E +S3061C012D92001D +S3061C012D93001C +S3061C012D94001B +S3061C012D95001A +S3061C012D960019 +S3061C012D970018 +S3061C012D980017 +S3061C012D990016 +S3061C012D9A0015 +S3061C012D9B0014 +S3061C012D9C0013 +S3061C012D9D0012 +S3061C012D9E0011 +S3061C012D9F0010 +S3061C012DA0000F +S3061C012DA1000E +S3061C012DA2000D +S3061C012DA3000C +S3061C012DA4000B +S3061C012DA5000A +S3061C012DA60009 +S3061C012DA70008 +S3061C012DA80007 +S3061C012DA90006 +S3061C012DAA0005 +S3061C012DAB0004 +S3061C012DAC0003 +S3061C012DAD0002 +S3061C012DAE0001 +S3061C012DAF0000 +S3061C012DB000FF +S3061C012DB100FE +S3061C012DB200FD +S3061C012DB300FC +S3061C012DB400FB +S3061C012DB500FA +S3061C012DB600F9 +S3061C012DB700F8 +S3061C012DB800F7 +S3061C012DB900F6 +S3061C012DBA00F5 +S3061C012DBB00F4 +S3061C012DBC00F3 +S3061C012DBD00F2 +S3061C012DBE00F1 +S3061C012DBF00F0 +S3061C012DC000EF +S3061C012DC100EE +S3061C012DC200ED +S3061C012DC300EC +S3061C012DC400EB +S3061C012DC500EA +S3061C012DC600E9 +S3061C012DC700E8 +S3061C012DC800E7 +S3061C012DC900E6 +S3061C012DCA00E5 +S3061C012DCB00E4 +S3061C012DCC00E3 +S3061C012DCD00E2 +S3061C012DCE00E1 +S3061C012DCF00E0 +S3061C012DD000DF +S3061C012DD100DE +S3061C012DD200DD +S3061C012DD300DC +S3061C012DD400DB +S3061C012DD500DA +S3061C012DD600D9 +S3061C012DD700D8 +S3061C012DD800D7 +S3061C012DD900D6 +S3061C012DDA00D5 +S3061C012DDB00D4 +S3061C012DDC00D3 +S3061C012DDD00D2 +S3061C012DDE00D1 +S3061C012DDF00D0 +S3061C012DE000CF +S3061C012DE100CE +S3061C012DE200CD +S3061C012DE300CC +S3061C012DE400CB +S3061C012DE500CA +S3061C012DE600C9 +S3061C012DE700C8 +S3061C012DE800C7 +S3061C012DE900C6 +S3061C012DEA00C5 +S3061C012DEB00C4 +S3061C012DEC00C3 +S3061C012DED00C2 +S3061C012DEE00C1 +S3061C012DEF00C0 +S3061C012DF000BF +S3061C012DF100BE +S3061C012DF200BD +S3061C012DF300BC +S3061C012DF400BB +S3061C012DF500BA +S3061C012DF600B9 +S3061C012DF700B8 +S3061C012DF800B7 +S3061C012DF900B6 +S3061C012DFA00B5 +S3061C012DFB00B4 +S3061C012DFC00B3 +S3061C012DFD00B2 +S3061C012DFE00B1 +S3061C012DFF00B0 +S3061C012E0000AE +S3061C012E0100AD +S3061C012E0200AC +S3061C012E0300AB +S3061C012E0400AA +S3061C012E0500A9 +S3061C012E0600A8 +S3061C012E0700A7 +S3061C012E0800A6 +S3061C012E0900A5 +S3061C012E0A00A4 +S3061C012E0B00A3 +S3061C012E0C00A2 +S3061C012E0D00A1 +S3061C012E0E00A0 +S3061C012E0F009F +S3061C012E10009E +S3061C012E11009D +S3061C012E12009C +S3061C012E13009B +S3061C012E14009A +S3061C012E150099 +S3061C012E160098 +S3061C012E170097 +S3061C012E180096 +S3061C012E190095 +S3061C012E1A0094 +S3061C012E1B0093 +S3061C012E1C0092 +S3061C012E1D0091 +S3061C012E1E0090 +S3061C012E1F008F +S3061C012E20008E +S3061C012E21008D +S3061C012E22008C +S3061C012E23008B +S3061C012E24008A +S3061C012E250089 +S3061C012E260088 +S3061C012E270087 +S3061C012E280086 +S3061C012E290085 +S3061C012E2A0084 +S3061C012E2B0083 +S3061C012E2C0082 +S3061C012E2D0081 +S3061C012E2E0080 +S3061C012E2F007F +S3061C012E30007E +S3061C012E31007D +S3061C012E32007C +S3061C012E33007B +S3061C012E34007A +S3061C012E350079 +S3061C012E360078 +S3061C012E370077 +S3061C012E380076 +S3061C012E390075 +S3061C012E3A0074 +S3061C012E3B0073 +S3061C012E3C0072 +S3061C012E3D0071 +S3061C012E3E0070 +S3061C012E3F006F +S3061C012E40006E +S3061C012E41006D +S3061C012E42006C +S3061C012E43006B +S3061C012E44006A +S3061C012E450069 +S3061C012E460068 +S3061C012E470067 +S3061C012E480066 +S3061C012E490065 +S3061C012E4A0064 +S3061C012E4B0063 +S3061C012E4C0062 +S3061C012E4D0061 +S3061C012E4E0060 +S3061C012E4F005F +S3061C012E50005E +S3061C012E51005D +S3061C012E52005C +S3061C012E53005B +S3061C012E54005A +S3061C012E550059 +S3061C012E560058 +S3061C012E570057 +S3061C012E580056 +S3061C012E590055 +S3061C012E5A0054 +S3061C012E5B0053 +S3061C012E5C0052 +S3061C012E5D0051 +S3061C012E5E0050 +S3061C012E5F004F +S3061C012E60004E +S3061C012E61004D +S3061C012E62004C +S3061C012E63004B +S3061C012E64004A +S3061C012E650049 +S3061C012E660048 +S3061C012E670047 +S3061C012E680046 +S3061C012E690045 +S3061C012E6A0044 +S3061C012E6B0043 +S3061C012E6C0042 +S3061C012E6D0041 +S3061C012E6E0040 +S3061C012E6F003F +S3061C012E70003E +S3061C012E71003D +S3061C012E72003C +S3061C012E73003B +S3061C012E74003A +S3061C012E750039 +S3061C012E760038 +S3061C012E770037 +S3061C012E780036 +S3061C012E790035 +S3061C012E7A0034 +S3061C012E7B0033 +S3061C012E7C0032 +S3061C012E7D0031 +S3061C012E7E0030 +S3061C012E7F002F +S3061C012E80002E +S3061C012E81002D +S3061C012E82002C +S3061C012E83002B +S3061C012E84002A +S3061C012E850029 +S3061C012E860028 +S3061C012E870027 +S3061C012E880026 +S3061C012E890025 +S3061C012E8A0024 +S3061C012E8B0023 +S3061C012E8C0022 +S3061C012E8D0021 +S3061C012E8E0020 +S3061C012E8F001F +S3061C012E90001E +S3061C012E91001D +S3061C012E92001C +S3061C012E93001B +S3061C012E94001A +S3061C012E950019 +S3061C012E960018 +S3061C012E970017 +S3061C012E980016 +S3061C012E990015 +S3061C012E9A0014 +S3061C012E9B0013 +S3061C012E9C0012 +S3061C012E9D0011 +S3061C012E9E0010 +S3061C012E9F000F +S3061C012EA0000E +S3061C012EA1000D +S3061C012EA2000C +S3061C012EA3000B +S3061C012EA4000A +S3061C012EA50009 +S3061C012EA60008 +S3061C012EA70007 +S3061C012EA80006 +S3061C012EA90005 +S3061C012EAA0004 +S3061C012EAB0003 +S3061C012EAC0002 +S3061C012EAD0001 +S3061C012EAE0000 +S3061C012EAF00FF +S3061C012EB000FE +S3061C012EB100FD +S3061C012EB200FC +S3061C012EB300FB +S3061C012EB400FA +S3061C012EB500F9 +S3061C012EB600F8 +S3061C012EB700F7 +S3061C012EB800F6 +S3061C012EB900F5 +S3061C012EBA00F4 +S3061C012EBB00F3 +S3061C012EBC00F2 +S3061C012EBD00F1 +S3061C012EBE00F0 +S3061C012EBF00EF +S3061C012EC000EE +S3061C012EC100ED +S3061C012EC200EC +S3061C012EC300EB +S3061C012EC400EA +S3061C012EC500E9 +S3061C012EC600E8 +S3061C012EC700E7 +S3061C012EC800E6 +S3061C012EC900E5 +S3061C012ECA00E4 +S3061C012ECB00E3 +S3061C012ECC00E2 +S3061C012ECD00E1 +S3061C012ECE00E0 +S3061C012ECF00DF +S3061C012ED000DE +S3061C012ED100DD +S3061C012ED200DC +S3061C012ED300DB +S3061C012ED400DA +S3061C012ED500D9 +S3061C012ED600D8 +S3061C012ED700D7 +S3061C012ED800D6 +S3061C012ED900D5 +S3061C012EDA00D4 +S3061C012EDB00D3 +S3061C012EDC00D2 +S3061C012EDD00D1 +S3061C012EDE00D0 +S3061C012EDF00CF +S3061C012EE000CE +S3061C012EE100CD +S3061C012EE200CC +S3061C012EE300CB +S3061C012EE400CA +S3061C012EE500C9 +S3061C012EE600C8 +S3061C012EE700C7 +S3061C012EE800C6 +S3061C012EE900C5 +S3061C012EEA00C4 +S3061C012EEB00C3 +S3061C012EEC00C2 +S3061C012EED00C1 +S3061C012EEE00C0 +S3061C012EEF00BF +S3061C012EF000BE +S3061C012EF100BD +S3061C012EF200BC +S3061C012EF300BB +S3061C012EF400BA +S3061C012EF500B9 +S3061C012EF600B8 +S3061C012EF700B7 +S3061C012EF800B6 +S3061C012EF900B5 +S3061C012EFA00B4 +S3061C012EFB00B3 +S3061C012EFC00B2 +S3061C012EFD00B1 +S3061C012EFE00B0 +S3061C012EFF00AF +S3061C012F0000AD +S3061C012F0100AC +S3061C012F0200AB +S3061C012F0300AA +S3061C012F0400A9 +S3061C012F0500A8 +S3061C012F0600A7 +S3061C012F0700A6 +S3061C012F0800A5 +S3061C012F0900A4 +S3061C012F0A00A3 +S3061C012F0B00A2 +S3061C012F0C00A1 +S3061C012F0D00A0 +S3061C012F0E009F +S3061C012F0F009E +S3061C012F10009D +S3061C012F11009C +S3061C012F12009B +S3061C012F13009A +S3061C012F140099 +S3061C012F150098 +S3061C012F160097 +S3061C012F170096 +S3061C012F180095 +S3061C012F190094 +S3061C012F1A0093 +S3061C012F1B0092 +S3061C012F1C0091 +S3061C012F1D0090 +S3061C012F1E008F +S3061C012F1F008E +S3061C012F20008D +S3061C012F21008C +S3061C012F22008B +S3061C012F23008A +S3061C012F240089 +S3061C012F250088 +S3061C012F260087 +S3061C012F270086 +S3061C012F280085 +S3061C012F290084 +S3061C012F2A0083 +S3061C012F2B0082 +S3061C012F2C0081 +S3061C012F2D0080 +S3061C012F2E007F +S3061C012F2F007E +S3061C012F30007D +S3061C012F31007C +S3061C012F32007B +S3061C012F33007A +S3061C012F340079 +S3061C012F350078 +S3061C012F360077 +S3061C012F370076 +S3061C012F380075 +S3061C012F390074 +S3061C012F3A0073 +S3061C012F3B0072 +S3061C012F3C0071 +S3061C012F3D0070 +S3061C012F3E006F +S3061C012F3F006E +S3061C012F40006D +S3061C012F41006C +S3061C012F42006B +S3061C012F43006A +S3061C012F440069 +S3061C012F450068 +S3061C012F460067 +S3061C012F470066 +S3061C012F480065 +S3061C012F490064 +S3061C012F4A0063 +S3061C012F4B0062 +S3061C012F4C0061 +S3061C012F4D0060 +S3061C012F4E005F +S3061C012F4F005E +S3061C012F50005D +S3061C012F51005C +S3061C012F52005B +S3061C012F53005A +S3061C012F540059 +S3061C012F550058 +S3061C012F560057 +S3061C012F570056 +S3061C012F580055 +S3061C012F590054 +S3061C012F5A0053 +S3061C012F5B0052 +S3061C012F5C0051 +S3061C012F5D0050 +S3061C012F5E004F +S3061C012F5F004E +S3061C012F60004D +S3061C012F61004C +S3061C012F62004B +S3061C012F63004A +S3061C012F640049 +S3061C012F650048 +S3061C012F660047 +S3061C012F670046 +S3061C012F680045 +S3061C012F690044 +S3061C012F6A0043 +S3061C012F6B0042 +S3061C012F6C0041 +S3061C012F6D0040 +S3061C012F6E003F +S3061C012F6F003E +S3061C012F70003D +S3061C012F71003C +S3061C012F72003B +S3061C012F73003A +S3061C012F740039 +S3061C012F750038 +S3061C012F760037 +S3061C012F770036 +S3061C012F780035 +S3061C012F790034 +S3061C012F7A0033 +S3061C012F7B0032 +S3061C012F7C0031 +S3061C012F7D0030 +S3061C012F7E002F +S3061C012F7F002E +S3061C012F80002D +S3061C012F81002C +S3061C012F82002B +S3061C012F83002A +S3061C012F840029 +S3061C012F850028 +S3061C012F860027 +S3061C012F870026 +S3061C012F880025 +S3061C012F890024 +S3061C012F8A0023 +S3061C012F8B0022 +S3061C012F8C0021 +S3061C012F8D0020 +S3061C012F8E001F +S3061C012F8F001E +S3061C012F90001D +S3061C012F91001C +S3061C012F92001B +S3061C012F93001A +S3061C012F940019 +S3061C012F950018 +S3061C012F960017 +S3061C012F970016 +S3061C012F980015 +S3061C012F990014 +S3061C012F9A0013 +S3061C012F9B0012 +S3061C012F9C0011 +S3061C012F9D0010 +S3061C012F9E000F +S3061C012F9F000E +S3061C012FA0000D +S3061C012FA1000C +S3061C012FA2000B +S3061C012FA3000A +S3061C012FA40009 +S3061C012FA50008 +S3061C012FA60007 +S3061C012FA70006 +S3061C012FA80005 +S3061C012FA90004 +S3061C012FAA0003 +S3061C012FAB0002 +S3061C012FAC0001 +S3061C012FAD0000 +S3061C012FAE00FF +S3061C012FAF00FE +S3061C012FB000FD +S3061C012FB100FC +S3061C012FB200FB +S3061C012FB300FA +S3061C012FB400F9 +S3061C012FB500F8 +S3061C012FB600F7 +S3061C012FB700F6 +S3061C012FB800F5 +S3061C012FB900F4 +S3061C012FBA00F3 +S3061C012FBB00F2 +S3061C012FBC00F1 +S3061C012FBD00F0 +S3061C012FBE00EF +S3061C012FBF00EE +S3061C012FC000ED +S3061C012FC100EC +S3061C012FC200EB +S3061C012FC300EA +S3061C012FC400E9 +S3061C012FC500E8 +S3061C012FC600E7 +S3061C012FC700E6 +S3061C012FC800E5 +S3061C012FC900E4 +S3061C012FCA00E3 +S3061C012FCB00E2 +S3061C012FCC00E1 +S3061C012FCD00E0 +S3061C012FCE00DF +S3061C012FCF00DE +S3061C012FD000DD +S3061C012FD100DC +S3061C012FD200DB +S3061C012FD300DA +S3061C012FD400D9 +S3061C012FD500D8 +S3061C012FD600D7 +S3061C012FD700D6 +S3061C012FD800D5 +S3061C012FD900D4 +S3061C012FDA00D3 +S3061C012FDB00D2 +S3061C012FDC00D1 +S3061C012FDD00D0 +S3061C012FDE00CF +S3061C012FDF00CE +S3061C012FE000CD +S3061C012FE100CC +S3061C012FE200CB +S3061C012FE300CA +S3061C012FE400C9 +S3061C012FE500C8 +S3061C012FE600C7 +S3061C012FE700C6 +S3061C012FE800C5 +S3061C012FE900C4 +S3061C012FEA00C3 +S3061C012FEB00C2 +S3061C012FEC00C1 +S3061C012FED00C0 +S3061C012FEE00BF +S3061C012FEF00BE +S3061C012FF000BD +S3061C012FF100BC +S3061C012FF200BB +S3061C012FF300BA +S3061C012FF400B9 +S3061C012FF500B8 +S3061C012FF600B7 +S3061C012FF700B6 +S3061C012FF800B5 +S3061C012FF900B4 +S3061C012FFA00B3 +S3061C012FFB00B2 +S3061C012FFC00B1 +S3061C012FFD00B0 +S3061C012FFE00AF +S3061C012FFF00AE +S3061C01300000AC +S3061C01300100AB +S3061C01300200AA +S3061C01300300A9 +S3061C01300400A8 +S3061C01300500A7 +S3061C01300600A6 +S3061C01300700A5 +S3061C01300800A4 +S3061C01300900A3 +S3061C01300A00A2 +S3061C01300B00A1 +S3061C01300C00A0 +S3061C01300D009F +S3061C01300E009E +S3061C01300F009D +S3061C013010009C +S3061C013011009B +S3061C013012009A +S3061C0130130099 +S3061C0130140098 +S3061C0130150097 +S3061C0130160096 +S3061C0130170095 +S3061C0130180094 +S3061C0130190093 +S3061C01301A0092 +S3061C01301B0091 +S3061C01301C0090 +S3061C01301D008F +S3061C01301E008E +S3061C01301F008D +S3061C013020008C +S3061C013021008B +S3061C013022008A +S3061C0130230089 +S3061C0130240088 +S3061C0130250087 +S3061C0130260086 +S3061C0130270085 +S3061C0130280084 +S3061C0130290083 +S3061C01302A0082 +S3061C01302B0081 +S3061C01302C0080 +S3061C01302D007F +S3061C01302E007E +S3061C01302F007D +S3061C013030007C +S3061C013031007B +S3061C013032007A +S3061C0130330079 +S3061C0130340078 +S3061C0130350077 +S3061C0130360076 +S3061C0130370075 +S3061C0130380074 +S3061C0130390073 +S3061C01303A0072 +S3061C01303B0071 +S3061C01303C0070 +S3061C01303D006F +S3061C01303E006E +S3061C01303F006D +S3061C013040006C +S3061C013041006B +S3061C013042006A +S3061C0130430069 +S3061C0130440068 +S3061C0130450067 +S3061C0130460066 +S3061C0130470065 +S3061C0130480064 +S3061C0130490063 +S3061C01304A0062 +S3061C01304B0061 +S3061C01304C0060 +S3061C01304D005F +S3061C01304E005E +S3061C01304F005D +S3061C013050005C +S3061C013051005B +S3061C013052005A +S3061C0130530059 +S3061C0130540058 +S3061C0130550057 +S3061C0130560056 +S3061C0130570055 +S3061C0130580054 +S3061C0130590053 +S3061C01305A0052 +S3061C01305B0051 +S3061C01305C0050 +S3061C01305D004F +S3061C01305E004E +S3061C01305F004D +S3061C013060004C +S3061C013061004B +S3061C013062004A +S3061C0130630049 +S3061C0130640048 +S3061C0130650047 +S3061C0130660046 +S3061C0130670045 +S3061C0130680044 +S3061C0130690043 +S3061C01306A0042 +S3061C01306B0041 +S3061C01306C0040 +S3061C01306D003F +S3061C01306E003E +S3061C01306F003D +S3061C013070003C +S3061C013071003B +S3061C013072003A +S3061C0130730039 +S3061C0130740038 +S3061C0130750037 +S3061C0130760036 +S3061C0130770035 +S3061C0130780034 +S3061C0130790033 +S3061C01307A0032 +S3061C01307B0031 +S3061C01307C0030 +S3061C01307D002F +S3061C01307E002E +S3061C01307F002D +S3061C013080002C +S3061C013081002B +S3061C013082002A +S3061C0130830029 +S3061C0130840028 +S3061C0130850027 +S3061C0130860026 +S3061C0130870025 +S3061C0130880024 +S3061C0130890023 +S3061C01308A0022 +S3061C01308B0021 +S3061C01308C0020 +S3061C01308D001F +S3061C01308E001E +S3061C01308F001D +S3061C013090001C +S3061C013091001B +S3061C013092001A +S3061C0130930019 +S3061C0130940018 +S3061C0130950017 +S3061C0130960016 +S3061C0130970015 +S3061C0130980014 +S3061C0130990013 +S3061C01309A0012 +S3061C01309B0011 +S3061C01309C0010 +S3061C01309D000F +S3061C01309E000E +S3061C01309F000D +S3061C0130A0000C +S3061C0130A1000B +S3061C0130A2000A +S3061C0130A30009 +S3061C0130A40008 +S3061C0130A50007 +S3061C0130A60006 +S3061C0130A70005 +S3061C0130A80004 +S3061C0130A90003 +S3061C0130AA0002 +S3061C0130AB0001 +S3061C0130AC0000 +S3061C0130AD00FF +S3061C0130AE00FE +S3061C0130AF00FD +S3061C0130B000FC +S3061C0130B100FB +S3061C0130B200FA +S3061C0130B300F9 +S3061C0130B400F8 +S3061C0130B500F7 +S3061C0130B600F6 +S3061C0130B700F5 +S3061C0130B800F4 +S3061C0130B900F3 +S3061C0130BA00F2 +S3061C0130BB00F1 +S3061C0130BC00F0 +S3061C0130BD00EF +S3061C0130BE00EE +S3061C0130BF00ED +S3061C0130C000EC +S3061C0130C100EB +S3061C0130C200EA +S3061C0130C300E9 +S3061C0130C400E8 +S3061C0130C500E7 +S3061C0130C600E6 +S3061C0130C700E5 +S3061C0130C800E4 +S3061C0130C900E3 +S3061C0130CA00E2 +S3061C0130CB00E1 +S3061C0130CC00E0 +S3061C0130CD00DF +S3061C0130CE00DE +S3061C0130CF00DD +S3061C0130D000DC +S3061C0130D100DB +S3061C0130D200DA +S3061C0130D300D9 +S3061C0130D400D8 +S3061C0130D500D7 +S3061C0130D600D6 +S3061C0130D700D5 +S3061C0130D800D4 +S3061C0130D900D3 +S3061C0130DA00D2 +S3061C0130DB00D1 +S3061C0130DC00D0 +S3061C0130DD00CF +S3061C0130DE00CE +S3061C0130DF00CD +S3061C0130E000CC +S3061C0130E100CB +S3061C0130E200CA +S3061C0130E300C9 +S3061C0130E400C8 +S3061C0130E500C7 +S3061C0130E600C6 +S3061C0130E700C5 +S3061C0130E800C4 +S3061C0130E900C3 +S3061C0130EA00C2 +S3061C0130EB00C1 +S3061C0130EC00C0 +S3061C0130ED00BF +S3061C0130EE00BE +S3061C0130EF00BD +S3061C0130F000BC +S3061C0130F100BB +S3061C0130F200BA +S3061C0130F300B9 +S3061C0130F400B8 +S3061C0130F500B7 +S3061C0130F600B6 +S3061C0130F700B5 +S3061C0130F800B4 +S3061C0130F900B3 +S3061C0130FA00B2 +S3061C0130FB00B1 +S3061C0130FC00B0 +S3061C0130FD00AF +S3061C0130FE00AE +S3061C0130FF00AD +S3061C01310000AB +S3061C01310100AA +S3061C01310200A9 +S3061C01310300A8 +S3061C01310400A7 +S3061C01310500A6 +S3061C01310600A5 +S3061C01310700A4 +S3061C01310800A3 +S3061C01310900A2 +S3061C01310A00A1 +S3061C01310B00A0 +S3061C01310C009F +S3061C01310D009E +S3061C01310E009D +S3061C01310F009C +S3061C013110009B +S3061C013111009A +S3061C0131120099 +S3061C0131130098 +S3061C0131140097 +S3061C0131150096 +S3061C0131160095 +S3061C0131170094 +S3061C0131180093 +S3061C0131190092 +S3061C01311A0091 +S3061C01311B0090 +S3061C01311C008F +S3061C01311D008E +S3061C01311E008D +S3061C01311F008C +S3061C013120008B +S3061C013121008A +S3061C0131220089 +S3061C0131230088 +S3061C0131240087 +S3061C0131250086 +S3061C0131260085 +S3061C0131270084 +S3061C0131280083 +S3061C0131290082 +S3061C01312A0081 +S3061C01312B0080 +S3061C01312C007F +S3061C01312D007E +S3061C01312E007D +S3061C01312F007C +S3061C013130007B +S3061C013131007A +S3061C0131320079 +S3061C0131330078 +S3061C0131340077 +S3061C0131350076 +S3061C0131360075 +S3061C0131370074 +S3061C0131380073 +S3061C0131390072 +S3061C01313A0071 +S3061C01313B0070 +S3061C01313C006F +S3061C01313D006E +S3061C01313E006D +S3061C01313F006C +S3061C013140006B +S3061C013141006A +S3061C0131420069 +S3061C0131430068 +S3061C0131440067 +S3061C0131450066 +S3061C0131460065 +S3061C0131470064 +S3061C0131480063 +S3061C0131490062 +S3061C01314A0061 +S3061C01314B0060 +S3061C01314C005F +S3061C01314D005E +S3061C01314E005D +S3061C01314F005C +S3061C013150005B +S3061C013151005A +S3061C0131520059 +S3061C0131530058 +S3061C0131540057 +S3061C0131550056 +S3061C0131560055 +S3061C0131570054 +S3061C0131580053 +S3061C0131590052 +S3061C01315A0051 +S3061C01315B0050 +S3061C01315C004F +S3061C01315D004E +S3061C01315E004D +S3061C01315F004C +S3061C013160004B +S3061C013161004A +S3061C0131620049 +S3061C0131630048 +S3061C0131640047 +S3061C0131650046 +S3061C0131660045 +S3061C0131670044 +S3061C0131680043 +S3061C0131690042 +S3061C01316A0041 +S3061C01316B0040 +S3061C01316C003F +S3061C01316D003E +S3061C01316E003D +S3061C01316F003C +S3061C013170003B +S3061C013171003A +S3061C0131720039 +S3061C0131730038 +S3061C0131740037 +S3061C0131750036 +S3061C0131760035 +S3061C0131770034 +S3061C0131780033 +S3061C0131790032 +S3061C01317A0031 +S3061C01317B0030 +S3061C01317C002F +S3061C01317D002E +S3061C01317E002D +S3061C01317F002C +S3061C013180002B +S3061C013181002A +S3061C0131820029 +S3061C0131830028 +S3061C0131840027 +S3061C0131850026 +S3061C0131860025 +S3061C0131870024 +S3061C0131880023 +S3061C0131890022 +S3061C01318A0021 +S3061C01318B0020 +S3061C01318C001F +S3061C01318D001E +S3061C01318E001D +S3061C01318F001C +S3061C013190001B +S3061C013191001A +S3061C0131920019 +S3061C0131930018 +S3061C0131940017 +S3061C0131950016 +S3061C0131960015 +S3061C0131970014 +S3061C0131980013 +S3061C0131990012 +S3061C01319A0011 +S3061C01319B0010 +S3061C01319C000F +S3061C01319D000E +S3061C01319E000D +S3061C01319F000C +S3061C0131A0000B +S3061C0131A1000A +S3061C0131A20009 +S3061C0131A30008 +S3061C0131A40007 +S3061C0131A50006 +S3061C0131A60005 +S3061C0131A70004 +S3061C0131A80003 +S3061C0131A90002 +S3061C0131AA0001 +S3061C0131AB0000 +S3061C0131AC00FF +S3061C0131AD00FE +S3061C0131AE00FD +S3061C0131AF00FC +S3061C0131B000FB +S3061C0131B100FA +S3061C0131B200F9 +S3061C0131B300F8 +S3061C0131B400F7 +S3061C0131B500F6 +S3061C0131B600F5 +S3061C0131B700F4 +S3061C0131B800F3 +S3061C0131B900F2 +S3061C0131BA00F1 +S3061C0131BB00F0 +S3061C0131BC00EF +S3061C0131BD00EE +S3061C0131BE00ED +S3061C0131BF00EC +S3061C0131C000EB +S3061C0131C100EA +S3061C0131C200E9 +S3061C0131C300E8 +S3061C0131C400E7 +S3061C0131C500E6 +S3061C0131C600E5 +S3061C0131C700E4 +S3061C0131C800E3 +S3061C0131C900E2 +S3061C0131CA00E1 +S3061C0131CB00E0 +S3061C0131CC00DF +S3061C0131CD00DE +S3061C0131CE00DD +S3061C0131CF00DC +S3061C0131D000DB +S3061C0131D100DA +S3061C0131D200D9 +S3061C0131D300D8 +S3061C0131D400D7 +S3061C0131D500D6 +S3061C0131D600D5 +S3061C0131D700D4 +S3061C0131D800D3 +S3061C0131D900D2 +S3061C0131DA00D1 +S3061C0131DB00D0 +S3061C0131DC00CF +S3061C0131DD00CE +S3061C0131DE00CD +S3061C0131DF00CC +S3061C0131E000CB +S3061C0131E100CA +S3061C0131E200C9 +S3061C0131E300C8 +S3061C0131E400C7 +S3061C0131E500C6 +S3061C0131E600C5 +S3061C0131E700C4 +S3061C0131E800C3 +S3061C0131E900C2 +S3061C0131EA00C1 +S3061C0131EB00C0 +S3061C0131EC00BF +S3061C0131ED00BE +S3061C0131EE00BD +S3061C0131EF00BC +S3061C0131F000BB +S3061C0131F100BA +S3061C0131F200B9 +S3061C0131F300B8 +S3061C0131F400B7 +S3061C0131F500B6 +S3061C0131F600B5 +S3061C0131F700B4 +S3061C0131F800B3 +S3061C0131F900B2 +S3061C0131FA00B1 +S3061C0131FB00B0 +S3061C0131FC00AF +S3061C0131FD00AE +S3061C0131FE00AD +S3061C0131FF00AC +S3061C01320000AA +S3061C01320100A9 +S3061C01320200A8 +S3061C01320300A7 +S3061C01320400A6 +S3061C01320500A5 +S3061C01320600A4 +S3061C01320700A3 +S3061C01320800A2 +S3061C01320900A1 +S3061C01320A00A0 +S3061C01320B009F +S3061C01320C009E +S3061C01320D009D +S3061C01320E009C +S3061C01320F009B +S3061C013210009A +S3061C0132110099 +S3061C0132120098 +S3061C0132130097 +S3061C0132140096 +S3061C0132150095 +S3061C0132160094 +S3061C0132170093 +S3061C0132180092 +S3061C0132190091 +S3061C01321A0090 +S3061C01321B008F +S3061C01321C008E +S3061C01321D008D +S3061C01321E008C +S3061C01321F008B +S3061C013220008A +S3061C0132210089 +S3061C0132220088 +S3061C0132230087 +S3061C0132240086 +S3061C0132250085 +S3061C0132260084 +S3061C0132270083 +S3061C0132280082 +S3061C0132290081 +S3061C01322A0080 +S3061C01322B007F +S3061C01322C007E +S3061C01322D007D +S3061C01322E007C +S3061C01322F007B +S3061C013230007A +S3061C0132310079 +S3061C0132320078 +S3061C0132330077 +S3061C0132340076 +S3061C0132350075 +S3061C0132360074 +S3061C0132370073 +S3061C0132380072 +S3061C0132390071 +S3061C01323A0070 +S3061C01323B006F +S3061C01323C006E +S3061C01323D006D +S3061C01323E006C +S3061C01323F006B +S3061C013240006A +S3061C0132410069 +S3061C0132420068 +S3061C0132430067 +S3061C0132440066 +S3061C0132450065 +S3061C0132460064 +S3061C0132470063 +S3061C0132480062 +S3061C0132490061 +S3061C01324A0060 +S3061C01324B005F +S3061C01324C005E +S3061C01324D005D +S3061C01324E005C +S3061C01324F005B +S3061C013250005A +S3061C0132510059 +S3061C0132520058 +S3061C0132530057 +S3061C0132540056 +S3061C0132550055 +S3061C0132560054 +S3061C0132570053 +S3061C0132580052 +S3061C0132590051 +S3061C01325A0050 +S3061C01325B004F +S3061C01325C004E +S3061C01325D004D +S3061C01325E004C +S3061C01325F004B +S3061C013260004A +S3061C0132610049 +S3061C0132620048 +S3061C0132630047 +S3061C0132640046 +S3061C0132650045 +S3061C0132660044 +S3061C0132670043 +S3061C0132680042 +S3061C0132690041 +S3061C01326A0040 +S3061C01326B003F +S3061C01326C003E +S3061C01326D003D +S3061C01326E003C +S3061C01326F003B +S3061C013270003A +S3061C0132710039 +S3061C0132720038 +S3061C0132730037 +S3061C0132740036 +S3061C0132750035 +S3061C0132760034 +S3061C0132770033 +S3061C0132780032 +S3061C0132790031 +S3061C01327A0030 +S3061C01327B002F +S3061C01327C002E +S3061C01327D002D +S3061C01327E002C +S3061C01327F002B +S3061C013280002A +S3061C0132810029 +S3061C0132820028 +S3061C0132830027 +S3061C0132840026 +S3061C0132850025 +S3061C0132860024 +S3061C0132870023 +S3061C0132880022 +S3061C0132890021 +S3061C01328A0020 +S3061C01328B001F +S3061C01328C001E +S3061C01328D001D +S3061C01328E001C +S3061C01328F001B +S3061C013290001A +S3061C0132910019 +S3061C0132920018 +S3061C0132930017 +S3061C0132940016 +S3061C0132950015 +S3061C0132960014 +S3061C0132970013 +S3061C0132980012 +S3061C0132990011 +S3061C01329A0010 +S3061C01329B000F +S3061C01329C000E +S3061C01329D000D +S3061C01329E000C +S3061C01329F000B +S3061C0132A0000A +S3061C0132A10009 +S3061C0132A20008 +S3061C0132A30007 +S3061C0132A40006 +S3061C0132A50005 +S3061C0132A60004 +S3061C0132A70003 +S3061C0132A80002 +S3061C0132A90001 +S3061C0132AA0000 +S3061C0132AB00FF +S3061C0132AC00FE +S3061C0132AD00FD +S3061C0132AE00FC +S3061C0132AF00FB +S3061C0132B000FA +S3061C0132B100F9 +S3061C0132B200F8 +S3061C0132B300F7 +S3061C0132B400F6 +S3061C0132B500F5 +S3061C0132B600F4 +S3061C0132B700F3 +S3061C0132B800F2 +S3061C0132B900F1 +S3061C0132BA00F0 +S3061C0132BB00EF +S3061C0132BC00EE +S3061C0132BD00ED +S3061C0132BE00EC +S3061C0132BF00EB +S3061C0132C000EA +S3061C0132C100E9 +S3061C0132C200E8 +S3061C0132C300E7 +S3061C0132C400E6 +S3061C0132C500E5 +S3061C0132C600E4 +S3061C0132C700E3 +S3061C0132C800E2 +S3061C0132C900E1 +S3061C0132CA00E0 +S3061C0132CB00DF +S3061C0132CC00DE +S3061C0132CD00DD +S3061C0132CE00DC +S3061C0132CF00DB +S3061C0132D000DA +S3061C0132D100D9 +S3061C0132D200D8 +S3061C0132D300D7 +S3061C0132D400D6 +S3061C0132D500D5 +S3061C0132D600D4 +S3061C0132D700D3 +S3061C0132D800D2 +S3061C0132D900D1 +S3061C0132DA00D0 +S3061C0132DB00CF +S3061C0132DC00CE +S3061C0132DD00CD +S3061C0132DE00CC +S3061C0132DF00CB +S3061C0132E000CA +S3061C0132E100C9 +S3061C0132E200C8 +S3061C0132E300C7 +S3061C0132E400C6 +S3061C0132E500C5 +S3061C0132E600C4 +S3061C0132E700C3 +S3061C0132E800C2 +S3061C0132E900C1 +S3061C0132EA00C0 +S3061C0132EB00BF +S3061C0132EC00BE +S3061C0132ED00BD +S3061C0132EE00BC +S3061C0132EF00BB +S3061C0132F000BA +S3061C0132F100B9 +S3061C0132F200B8 +S3061C0132F300B7 +S3061C0132F400B6 +S3061C0132F500B5 +S3061C0132F600B4 +S3061C0132F700B3 +S3061C0132F800B2 +S3061C0132F900B1 +S3061C0132FA00B0 +S3061C0132FB00AF +S3061C0132FC00AE +S3061C0132FD00AD +S3061C0132FE00AC +S3061C0132FF00AB +S3061C01330000A9 +S3061C01330100A8 +S3061C01330200A7 +S3061C01330300A6 +S3061C01330400A5 +S3061C01330500A4 +S3061C01330600A3 +S3061C01330700A2 +S3061C01330800A1 +S3061C01330900A0 +S3061C01330A009F +S3061C01330B009E +S3061C01330C009D +S3061C01330D009C +S3061C01330E009B +S3061C01330F009A +S3061C0133100099 +S3061C0133110098 +S3061C0133120097 +S3061C0133130096 +S3061C0133140095 +S3061C0133150094 +S3061C0133160093 +S3061C0133170092 +S3061C0133180091 +S3061C0133190090 +S3061C01331A008F +S3061C01331B008E +S3061C01331C008D +S3061C01331D008C +S3061C01331E008B +S3061C01331F008A +S3061C0133200089 +S3061C0133210088 +S3061C0133220087 +S3061C0133230086 +S3061C0133240085 +S3061C0133250084 +S3061C0133260083 +S3061C0133270082 +S3061C0133280081 +S3061C0133290080 +S3061C01332A007F +S3061C01332B007E +S3061C01332C007D +S3061C01332D007C +S3061C01332E007B +S3061C01332F007A +S3061C0133300079 +S3061C0133310078 +S3061C0133320077 +S3061C0133330076 +S3061C0133340075 +S3061C0133350074 +S3061C0133360073 +S3061C0133370072 +S3061C0133380071 +S3061C0133390070 +S3061C01333A006F +S3061C01333B006E +S3061C01333C006D +S3061C01333D006C +S3061C01333E006B +S3061C01333F006A +S3061C0133400069 +S3061C0133410068 +S3061C0133420067 +S3061C0133430066 +S3061C0133440065 +S3061C0133450064 +S3061C0133460063 +S3061C0133470062 +S3061C0133480061 +S3061C0133490060 +S3061C01334A005F +S3061C01334B005E +S3061C01334C005D +S3061C01334D005C +S3061C01334E005B +S3061C01334F005A +S3061C0133500059 +S3061C0133510058 +S3061C0133520057 +S3061C0133530056 +S3061C0133540055 +S3061C0133550054 +S3061C0133560053 +S3061C0133570052 +S3061C0133580051 +S3061C0133590050 +S3061C01335A004F +S3061C01335B004E +S3061C01335C004D +S3061C01335D004C +S3061C01335E004B +S3061C01335F004A +S3061C0133600049 +S3061C0133610048 +S3061C0133620047 +S3061C0133630046 +S3061C0133640045 +S3061C0133650044 +S3061C0133660043 +S3061C0133670042 +S3061C0133680041 +S3061C0133690040 +S3061C01336A003F +S3061C01336B003E +S3061C01336C003D +S3061C01336D003C +S3061C01336E003B +S3061C01336F003A +S3061C0133700039 +S3061C0133710038 +S3061C0133720037 +S3061C0133730036 +S3061C0133740035 +S3061C0133750034 +S3061C0133760033 +S3061C0133770032 +S3061C0133780031 +S3061C0133790030 +S3061C01337A002F +S3061C01337B002E +S3061C01337C002D +S3061C01337D002C +S3061C01337E002B +S3061C01337F002A +S3061C0133800029 +S3061C0133810028 +S3061C0133820027 +S3061C0133830026 +S3061C0133840025 +S3061C0133850024 +S3061C0133860023 +S3061C0133870022 +S3061C0133880021 +S3061C0133890020 +S3061C01338A001F +S3061C01338B001E +S3061C01338C001D +S3061C01338D001C +S3061C01338E001B +S3061C01338F001A +S3061C0133900019 +S3061C0133910018 +S3061C0133920017 +S3061C0133930016 +S3061C0133940015 +S3061C0133950014 +S3061C0133960013 +S3061C0133970012 +S3061C0133980011 +S3061C0133990010 +S3061C01339A000F +S3061C01339B000E +S3061C01339C000D +S3061C01339D000C +S3061C01339E000B +S3061C01339F000A +S3061C0133A00009 +S3061C0133A10008 +S3061C0133A20007 +S3061C0133A30006 +S3061C0133A40005 +S3061C0133A50004 +S3061C0133A60003 +S3061C0133A70002 +S3061C0133A80001 +S3061C0133A90000 +S3061C0133AA00FF +S3061C0133AB00FE +S3061C0133AC00FD +S3061C0133AD00FC +S3061C0133AE00FB +S3061C0133AF00FA +S3061C0133B000F9 +S3061C0133B100F8 +S3061C0133B200F7 +S3061C0133B300F6 +S3061C0133B400F5 +S3061C0133B500F4 +S3061C0133B600F3 +S3061C0133B700F2 +S3061C0133B800F1 +S3061C0133B900F0 +S3061C0133BA00EF +S3061C0133BB00EE +S3061C0133BC00ED +S3061C0133BD00EC +S3061C0133BE00EB +S3061C0133BF00EA +S3061C0133C000E9 +S3061C0133C100E8 +S3061C0133C200E7 +S3061C0133C300E6 +S3061C0133C400E5 +S3061C0133C500E4 +S3061C0133C600E3 +S3061C0133C700E2 +S3061C0133C800E1 +S3061C0133C900E0 +S3061C0133CA00DF +S3061C0133CB00DE +S3061C0133CC00DD +S3061C0133CD00DC +S3061C0133CE00DB +S3061C0133CF00DA +S3061C0133D000D9 +S3061C0133D100D8 +S3061C0133D200D7 +S3061C0133D300D6 +S3061C0133D400D5 +S3061C0133D500D4 +S3061C0133D600D3 +S3061C0133D700D2 +S3061C0133D800D1 +S3061C0133D900D0 +S3061C0133DA00CF +S3061C0133DB00CE +S3061C0133DC00CD +S3061C0133DD00CC +S3061C0133DE00CB +S3061C0133DF00CA +S3061C0133E000C9 +S3061C0133E100C8 +S3061C0133E200C7 +S3061C0133E300C6 +S3061C0133E400C5 +S3061C0133E500C4 +S3061C0133E600C3 +S3061C0133E700C2 +S3061C0133E800C1 +S3061C0133E900C0 +S3061C0133EA00BF +S3061C0133EB00BE +S3061C0133EC00BD +S3061C0133ED00BC +S3061C0133EE00BB +S3061C0133EF00BA +S3061C0133F000B9 +S3061C0133F100B8 +S3061C0133F200B7 +S3061C0133F300B6 +S3061C0133F400B5 +S3061C0133F500B4 +S3061C0133F600B3 +S3061C0133F700B2 +S3061C0133F800B1 +S3061C0133F900B0 +S3061C0133FA00AF +S3061C0133FB00AE +S3061C0133FC00AD +S3061C0133FD00AC +S3061C0133FE00AB +S3061C0133FF00AA +S7051C0000845A diff --git a/work/verif.txt b/work/verif.txt new file mode 100644 index 0000000..d8b9194 --- /dev/null +++ b/work/verif.txt @@ -0,0 +1,1764 @@ +1C000000_0000000000000000 +1C000008_0000000000000000 +1C000010_0000000000000000 +1C000018_0000000000000000 +1C000020_0000000000000000 +1C000028_0000000000000000 +1C000030_0000000000000000 +1C000038_0000000000000000 +1C000040_0000000000000000 +1C000048_0000000000000000 +1C000050_0000000000000000 +1C000058_0000000000000000 +1C000060_0000000000000000 +1C000068_0000000000000000 +1C000070_0000000000000000 +1C000078_0000000000000000 +1C000080_F14025730040006F +1C000088_4285811501F57593 +1C000090_A07342A13002A073 +1C000098_8293000132973042 +1C0000A0_0313000133173662 +1C0000A8_02910002A02335E3 +1C0000B0_00070117FE62EDE3 +1C0000B8_00000513F4C10113 +1C0000C0_0000039700000593 +1C0000C8_000380E706038393 +1C0000D0_105000738522842A +1C0000D8_0000000000008082 +1C0000E0_0000000000000000 +1C0000E8_078A0FF577930000 +1C0000F0_8D3D8121439C97AE +1C0000F8_97AE078A0FF57793 +1C000100_77938D3D8121439C +1C000108_439C97AE078A0FF5 +1C000110_0FF7F7138FA98121 +1C000118_83A1418895BA070A +1C000120_DC22713980828D3D +1C000128_C537D2561C013437 +1C000130_DA26C0040A93DEAD +1C000138_C0040913D452D84A +1C000140_CE5ED05AD64EDE06 +1C000148_7FCA8493C602CC62 +1C000150_EEF50513C0040413 +1C000158_000A05931C010A37 +1C000160_1BE30411C0083769 +1C000168_8B931C0124B7FE94 +1C000170_8413DEADC5374004 +1C000178_84937FCB89934004 +1C000180_0593EF0505134004 +1C000188_0491C0883785000A +1C000190_1C0124B7FF349BE3 +1C000198_DEADC537C0048B13 +1C0001A0_7FCB0C13C0048993 +1C0001A8_EF150513C0048493 +1C0001B0_C0883F1D000A0593 +1C0001B8_07B7FF849BE30491 +1C0001C0_FE074FE343D80010 +1C0001C8_0357A0231C011637 +1C0001D0_0E13D3D840060713 +1C0001D8_431103C7A4230400 +1C0001E0_020008930267A623 +1C0001E8_AA2348210317A823 +1C0001F0_DF88100005130307 +1C0001F8_A023DFCC08000593 +1C000200_A4230517A2230467 +1C000208_1737CBACC7E80507 +1C000210_07130577AA231C01 +1C000218_05C7AE23CFB8C007 +1C000220_0717A2230667A023 +1C000228_DBACD7E80707A423 +1C000230_0717AC230667AA23 +1C000238_08A7A0230707AE23 +1C000240_1C0106B708B7A223 +1C000248_400686930967A423 +1C000250_09C7A82308D7A623 +1C000258_0917AC230867AA23 +1C000260_0AA7A0230907AE23 +1C000268_0A67A4230AB7A223 +1C000270_0B07A8230B17A623 +1C000278_0AB7AC230AA7AA23 +1C000280_105000730007A023 +1C000288_0813400606136805 +1C000290_421C458198328008 +1C000298_0911061100092503 +1C0002A0_95BE00F037B38F89 +1C0002A8_650547B2FF0617E3 +1C0002B0_C62E95BE80050513 +1C0002B8_400C431C4601953A +1C0002C0_37B38F8D04110711 +1C0002C8_FEE518E3963E00F0 +1C0002D0_80058593658547B2 +1C0002D8_C63295B68736963E +1C0002E0_0009A603431C4681 +1C0002E8_37B38F9109910711 +1C0002F0_FEE597E396BE00F0 +1C0002F8_96BE546250F247B2 +1C000300_800007B74732C636 +1C000308_59424532C39854D2 +1C000310_5B025A925A2259B2 +1C000318_808261214C624BF2 +1C010000_1300000B00000000 +1C010008_3500001D26000016 +1C010010_5F0000274C00002C +1C010018_790000316A00003A +1C010020_8B00005398000058 +1C010028_AD000045BE00004E +1C010030_C700007FD4000074 +1C010038_E1000069F2000062 +1C010040_230000143000001F +1C010048_0500000216000009 +1C010050_6F0000387C000033 +1C010058_4900002E5A000025 +1C010060_BB00004CA8000047 +1C010068_9D00005A8E000051 +1C010070_F7000060E400006B +1C010078_D1000076C200007D +1C010080_730000356000003E +1C010088_5500002346000028 +1C010090_3F0000192C000012 +1C010098_1900000F0A000004 +1C0100A0_EB00006DF8000066 +1C0100A8_CD00007BDE000070 +1C0100B0_A7000041B400004A +1C0100B8_810000579200005C +1C0100C0_4300002A50000021 +1C0100C8_6500003C76000037 +1C0100D0_0F0000061C00000D +1C0100D8_290000103A00001B +1C0100E0_DB000072C8000079 +1C0100E8_FD000064EE00006F +1C0100F0_9700005E84000055 +1C0100F8_B1000048A2000043 +1C010100_D3000077C000007C +1C010108_F5000061E600006A +1C010110_9F00005B8C000050 +1C010118_B900004DAA000046 +1C010120_4B00002F58000024 +1C010128_6D0000397E000032 +1C010130_0700000314000008 +1C010138_210000153200001E +1C010140_E3000068F0000063 +1C010148_C500007ED6000075 +1C010150_AF000044BC00004F +1C010158_890000529A000059 +1C010160_7B0000306800003B +1C010168_5D0000264E00002D +1C010170_3700001C24000017 +1C010178_1100000A02000001 +1C010180_B3000049A0000042 +1C010188_9500005F86000054 +1C010190_FF000065EC00006E +1C010198_D9000073CA000078 +1C0101A0_2B0000113800001A +1C0101A8_0D0000071E00000C +1C0101B0_6700003D74000036 +1C0101B8_4100002B52000020 +1C0101C0_830000569000005D +1C0101C8_A5000040B600004B +1C0101D0_CF00007ADC000071 +1C0101D8_E900006CFA000067 +1C0101E0_1B00000E08000005 +1C0101E8_3D0000182E000013 +1C0101F0_5700002244000029 +1C0101F8_710000346200003F +1C010200_9300005C80000057 +1C010208_B500004AA6000041 +1C010210_DF000070CC00007B +1C010218_F9000066EA00006D +1C010220_0B0000041800000F +1C010228_2D0000123E000019 +1C010230_4700002854000023 +1C010238_6100003E72000035 +1C010240_A3000043B0000048 +1C010248_850000559600005E +1C010250_EF00006FFC000064 +1C010258_C9000079DA000072 +1C010260_3B00001B28000010 +1C010268_1D00000D0E000006 +1C010270_770000376400003C +1C010278_510000214200002A +1C010280_F3000062E0000069 +1C010288_D5000074C600007F +1C010290_BF00004EAC000045 +1C010298_990000588A000053 +1C0102A0_6B00003A78000031 +1C0102A8_4D00002C5E000027 +1C0102B0_270000163400001D +1C0102B8_010000001200000B +1C0102C0_C300007DD0000076 +1C0102C8_E500006BF6000060 +1C0102D0_8F0000519C00005A +1C0102D8_A9000047BA00004C +1C0102E0_5B0000254800002E +1C0102E8_7D0000336E000038 +1C0102F0_1700000904000002 +1C0102F8_3100001F22000014 +1C010300_530000204000002B +1C010308_750000366600003D +1C010310_1F00000C0C000007 +1C010318_3900001A2A000011 +1C010320_CB000078D8000073 +1C010328_ED00006EFE000065 +1C010330_870000549400005F +1C010338_A1000042B2000049 +1C010340_6300003F70000034 +1C010348_4500002956000022 +1C010350_2F0000133C000018 +1C010358_090000051A00000E +1C010360_FB000067E800006C +1C010368_DD000071CE00007A +1C010370_B700004BA4000040 +1C010378_9100005D82000056 +1C010380_3300001E20000015 +1C010388_1500000806000003 +1C010390_7F0000326C000039 +1C010398_590000244A00002F +1C0103A0_AB000046B800004D +1C0103A8_8D0000509E00005B +1C0103B0_E700006AF4000061 +1C0103B8_C100007CD2000077 +1C0103C0_030000011000000A +1C0103C8_250000173600001C +1C0103D0_4F00002D5C000026 +1C0103D8_6900003B7A000030 +1C0103E0_9B00005988000052 +1C0103E8_BD00004FAE000044 +1C0103F0_D7000075C400007E +1C0103F8_F1000063E2000068 +1C010400_0000000000000000 +1C010408_0000000000000000 +1C010410_0000000000000000 +1C010418_0000000000000000 +1C010420_0000000000000000 +1C010428_0000000000000000 +1C010430_0000000000000000 +1C010438_0000000000000000 +1C010440_0000000000000000 +1C010448_0000000000000000 +1C010450_0000000000000000 +1C010458_0000000000000000 +1C010460_0000000000000000 +1C010468_0000000000000000 +1C010470_0000000000000000 +1C010478_0000000000000000 +1C010480_0000000000000000 +1C010488_0000000000000000 +1C010490_0000000000000000 +1C010498_0000000000000000 +1C0104A0_0000000000000000 +1C0104A8_0000000000000000 +1C0104B0_0000000000000000 +1C0104B8_0000000000000000 +1C0104C0_0000000000000000 +1C0104C8_0000000000000000 +1C0104D0_0000000000000000 +1C0104D8_0000000000000000 +1C0104E0_0000000000000000 +1C0104E8_0000000000000000 +1C0104F0_0000000000000000 +1C0104F8_0000000000000000 +1C010500_0000000000000000 +1C010508_0000000000000000 +1C010510_0000000000000000 +1C010518_0000000000000000 +1C010520_0000000000000000 +1C010528_0000000000000000 +1C010530_0000000000000000 +1C010538_0000000000000000 +1C010540_0000000000000000 +1C010548_0000000000000000 +1C010550_0000000000000000 +1C010558_0000000000000000 +1C010560_0000000000000000 +1C010568_0000000000000000 +1C010570_0000000000000000 +1C010578_0000000000000000 +1C010580_0000000000000000 +1C010588_0000000000000000 +1C010590_0000000000000000 +1C010598_0000000000000000 +1C0105A0_0000000000000000 +1C0105A8_0000000000000000 +1C0105B0_0000000000000000 +1C0105B8_0000000000000000 +1C0105C0_0000000000000000 +1C0105C8_0000000000000000 +1C0105D0_0000000000000000 +1C0105D8_0000000000000000 +1C0105E0_0000000000000000 +1C0105E8_0000000000000000 +1C0105F0_0000000000000000 +1C0105F8_0000000000000000 +1C010600_0000000000000000 +1C010608_0000000000000000 +1C010610_0000000000000000 +1C010618_0000000000000000 +1C010620_0000000000000000 +1C010628_0000000000000000 +1C010630_0000000000000000 +1C010638_0000000000000000 +1C010640_0000000000000000 +1C010648_0000000000000000 +1C010650_0000000000000000 +1C010658_0000000000000000 +1C010660_0000000000000000 +1C010668_0000000000000000 +1C010670_0000000000000000 +1C010678_0000000000000000 +1C010680_0000000000000000 +1C010688_0000000000000000 +1C010690_0000000000000000 +1C010698_0000000000000000 +1C0106A0_0000000000000000 +1C0106A8_0000000000000000 +1C0106B0_0000000000000000 +1C0106B8_0000000000000000 +1C0106C0_0000000000000000 +1C0106C8_0000000000000000 +1C0106D0_0000000000000000 +1C0106D8_0000000000000000 +1C0106E0_0000000000000000 +1C0106E8_0000000000000000 +1C0106F0_0000000000000000 +1C0106F8_0000000000000000 +1C010700_0000000000000000 +1C010708_0000000000000000 +1C010710_0000000000000000 +1C010718_0000000000000000 +1C010720_0000000000000000 +1C010728_0000000000000000 +1C010730_0000000000000000 +1C010738_0000000000000000 +1C010740_0000000000000000 +1C010748_0000000000000000 +1C010750_0000000000000000 +1C010758_0000000000000000 +1C010760_0000000000000000 +1C010768_0000000000000000 +1C010770_0000000000000000 +1C010778_0000000000000000 +1C010780_0000000000000000 +1C010788_0000000000000000 +1C010790_0000000000000000 +1C010798_0000000000000000 +1C0107A0_0000000000000000 +1C0107A8_0000000000000000 +1C0107B0_0000000000000000 +1C0107B8_0000000000000000 +1C0107C0_0000000000000000 +1C0107C8_0000000000000000 +1C0107D0_0000000000000000 +1C0107D8_0000000000000000 +1C0107E0_0000000000000000 +1C0107E8_0000000000000000 +1C0107F0_0000000000000000 +1C0107F8_0000000000000000 +1C010800_0000000000000000 +1C010808_0000000000000000 +1C010810_0000000000000000 +1C010818_0000000000000000 +1C010820_0000000000000000 +1C010828_0000000000000000 +1C010830_0000000000000000 +1C010838_0000000000000000 +1C010840_0000000000000000 +1C010848_0000000000000000 +1C010850_0000000000000000 +1C010858_0000000000000000 +1C010860_0000000000000000 +1C010868_0000000000000000 +1C010870_0000000000000000 +1C010878_0000000000000000 +1C010880_0000000000000000 +1C010888_0000000000000000 +1C010890_0000000000000000 +1C010898_0000000000000000 +1C0108A0_0000000000000000 +1C0108A8_0000000000000000 +1C0108B0_0000000000000000 +1C0108B8_0000000000000000 +1C0108C0_0000000000000000 +1C0108C8_0000000000000000 +1C0108D0_0000000000000000 +1C0108D8_0000000000000000 +1C0108E0_0000000000000000 +1C0108E8_0000000000000000 +1C0108F0_0000000000000000 +1C0108F8_0000000000000000 +1C010900_0000000000000000 +1C010908_0000000000000000 +1C010910_0000000000000000 +1C010918_0000000000000000 +1C010920_0000000000000000 +1C010928_0000000000000000 +1C010930_0000000000000000 +1C010938_0000000000000000 +1C010940_0000000000000000 +1C010948_0000000000000000 +1C010950_0000000000000000 +1C010958_0000000000000000 +1C010960_0000000000000000 +1C010968_0000000000000000 +1C010970_0000000000000000 +1C010978_0000000000000000 +1C010980_0000000000000000 +1C010988_0000000000000000 +1C010990_0000000000000000 +1C010998_0000000000000000 +1C0109A0_0000000000000000 +1C0109A8_0000000000000000 +1C0109B0_0000000000000000 +1C0109B8_0000000000000000 +1C0109C0_0000000000000000 +1C0109C8_0000000000000000 +1C0109D0_0000000000000000 +1C0109D8_0000000000000000 +1C0109E0_0000000000000000 +1C0109E8_0000000000000000 +1C0109F0_0000000000000000 +1C0109F8_0000000000000000 +1C010A00_0000000000000000 +1C010A08_0000000000000000 +1C010A10_0000000000000000 +1C010A18_0000000000000000 +1C010A20_0000000000000000 +1C010A28_0000000000000000 +1C010A30_0000000000000000 +1C010A38_0000000000000000 +1C010A40_0000000000000000 +1C010A48_0000000000000000 +1C010A50_0000000000000000 +1C010A58_0000000000000000 +1C010A60_0000000000000000 +1C010A68_0000000000000000 +1C010A70_0000000000000000 +1C010A78_0000000000000000 +1C010A80_0000000000000000 +1C010A88_0000000000000000 +1C010A90_0000000000000000 +1C010A98_0000000000000000 +1C010AA0_0000000000000000 +1C010AA8_0000000000000000 +1C010AB0_0000000000000000 +1C010AB8_0000000000000000 +1C010AC0_0000000000000000 +1C010AC8_0000000000000000 +1C010AD0_0000000000000000 +1C010AD8_0000000000000000 +1C010AE0_0000000000000000 +1C010AE8_0000000000000000 +1C010AF0_0000000000000000 +1C010AF8_0000000000000000 +1C010B00_0000000000000000 +1C010B08_0000000000000000 +1C010B10_0000000000000000 +1C010B18_0000000000000000 +1C010B20_0000000000000000 +1C010B28_0000000000000000 +1C010B30_0000000000000000 +1C010B38_0000000000000000 +1C010B40_0000000000000000 +1C010B48_0000000000000000 +1C010B50_0000000000000000 +1C010B58_0000000000000000 +1C010B60_0000000000000000 +1C010B68_0000000000000000 +1C010B70_0000000000000000 +1C010B78_0000000000000000 +1C010B80_0000000000000000 +1C010B88_0000000000000000 +1C010B90_0000000000000000 +1C010B98_0000000000000000 +1C010BA0_0000000000000000 +1C010BA8_0000000000000000 +1C010BB0_0000000000000000 +1C010BB8_0000000000000000 +1C010BC0_0000000000000000 +1C010BC8_0000000000000000 +1C010BD0_0000000000000000 +1C010BD8_0000000000000000 +1C010BE0_0000000000000000 +1C010BE8_0000000000000000 +1C010BF0_0000000000000000 +1C010BF8_0000000000000000 +1C010C00_0000000000000000 +1C010C08_0000000000000000 +1C010C10_0000000000000000 +1C010C18_0000000000000000 +1C010C20_0000000000000000 +1C010C28_0000000000000000 +1C010C30_0000000000000000 +1C010C38_0000000000000000 +1C010C40_0000000000000000 +1C010C48_0000000000000000 +1C010C50_0000000000000000 +1C010C58_0000000000000000 +1C010C60_0000000000000000 +1C010C68_0000000000000000 +1C010C70_0000000000000000 +1C010C78_0000000000000000 +1C010C80_0000000000000000 +1C010C88_0000000000000000 +1C010C90_0000000000000000 +1C010C98_0000000000000000 +1C010CA0_0000000000000000 +1C010CA8_0000000000000000 +1C010CB0_0000000000000000 +1C010CB8_0000000000000000 +1C010CC0_0000000000000000 +1C010CC8_0000000000000000 +1C010CD0_0000000000000000 +1C010CD8_0000000000000000 +1C010CE0_0000000000000000 +1C010CE8_0000000000000000 +1C010CF0_0000000000000000 +1C010CF8_0000000000000000 +1C010D00_0000000000000000 +1C010D08_0000000000000000 +1C010D10_0000000000000000 +1C010D18_0000000000000000 +1C010D20_0000000000000000 +1C010D28_0000000000000000 +1C010D30_0000000000000000 +1C010D38_0000000000000000 +1C010D40_0000000000000000 +1C010D48_0000000000000000 +1C010D50_0000000000000000 +1C010D58_0000000000000000 +1C010D60_0000000000000000 +1C010D68_0000000000000000 +1C010D70_0000000000000000 +1C010D78_0000000000000000 +1C010D80_0000000000000000 +1C010D88_0000000000000000 +1C010D90_0000000000000000 +1C010D98_0000000000000000 +1C010DA0_0000000000000000 +1C010DA8_0000000000000000 +1C010DB0_0000000000000000 +1C010DB8_0000000000000000 +1C010DC0_0000000000000000 +1C010DC8_0000000000000000 +1C010DD0_0000000000000000 +1C010DD8_0000000000000000 +1C010DE0_0000000000000000 +1C010DE8_0000000000000000 +1C010DF0_0000000000000000 +1C010DF8_0000000000000000 +1C010E00_0000000000000000 +1C010E08_0000000000000000 +1C010E10_0000000000000000 +1C010E18_0000000000000000 +1C010E20_0000000000000000 +1C010E28_0000000000000000 +1C010E30_0000000000000000 +1C010E38_0000000000000000 +1C010E40_0000000000000000 +1C010E48_0000000000000000 +1C010E50_0000000000000000 +1C010E58_0000000000000000 +1C010E60_0000000000000000 +1C010E68_0000000000000000 +1C010E70_0000000000000000 +1C010E78_0000000000000000 +1C010E80_0000000000000000 +1C010E88_0000000000000000 +1C010E90_0000000000000000 +1C010E98_0000000000000000 +1C010EA0_0000000000000000 +1C010EA8_0000000000000000 +1C010EB0_0000000000000000 +1C010EB8_0000000000000000 +1C010EC0_0000000000000000 +1C010EC8_0000000000000000 +1C010ED0_0000000000000000 +1C010ED8_0000000000000000 +1C010EE0_0000000000000000 +1C010EE8_0000000000000000 +1C010EF0_0000000000000000 +1C010EF8_0000000000000000 +1C010F00_0000000000000000 +1C010F08_0000000000000000 +1C010F10_0000000000000000 +1C010F18_0000000000000000 +1C010F20_0000000000000000 +1C010F28_0000000000000000 +1C010F30_0000000000000000 +1C010F38_0000000000000000 +1C010F40_0000000000000000 +1C010F48_0000000000000000 +1C010F50_0000000000000000 +1C010F58_0000000000000000 +1C010F60_0000000000000000 +1C010F68_0000000000000000 +1C010F70_0000000000000000 +1C010F78_0000000000000000 +1C010F80_0000000000000000 +1C010F88_0000000000000000 +1C010F90_0000000000000000 +1C010F98_0000000000000000 +1C010FA0_0000000000000000 +1C010FA8_0000000000000000 +1C010FB0_0000000000000000 +1C010FB8_0000000000000000 +1C010FC0_0000000000000000 +1C010FC8_0000000000000000 +1C010FD0_0000000000000000 +1C010FD8_0000000000000000 +1C010FE0_0000000000000000 +1C010FE8_0000000000000000 +1C010FF0_0000000000000000 +1C010FF8_0000000000000000 +1C011000_0000000000000000 +1C011008_0000000000000000 +1C011010_0000000000000000 +1C011018_0000000000000000 +1C011020_0000000000000000 +1C011028_0000000000000000 +1C011030_0000000000000000 +1C011038_0000000000000000 +1C011040_0000000000000000 +1C011048_0000000000000000 +1C011050_0000000000000000 +1C011058_0000000000000000 +1C011060_0000000000000000 +1C011068_0000000000000000 +1C011070_0000000000000000 +1C011078_0000000000000000 +1C011080_0000000000000000 +1C011088_0000000000000000 +1C011090_0000000000000000 +1C011098_0000000000000000 +1C0110A0_0000000000000000 +1C0110A8_0000000000000000 +1C0110B0_0000000000000000 +1C0110B8_0000000000000000 +1C0110C0_0000000000000000 +1C0110C8_0000000000000000 +1C0110D0_0000000000000000 +1C0110D8_0000000000000000 +1C0110E0_0000000000000000 +1C0110E8_0000000000000000 +1C0110F0_0000000000000000 +1C0110F8_0000000000000000 +1C011100_0000000000000000 +1C011108_0000000000000000 +1C011110_0000000000000000 +1C011118_0000000000000000 +1C011120_0000000000000000 +1C011128_0000000000000000 +1C011130_0000000000000000 +1C011138_0000000000000000 +1C011140_0000000000000000 +1C011148_0000000000000000 +1C011150_0000000000000000 +1C011158_0000000000000000 +1C011160_0000000000000000 +1C011168_0000000000000000 +1C011170_0000000000000000 +1C011178_0000000000000000 +1C011180_0000000000000000 +1C011188_0000000000000000 +1C011190_0000000000000000 +1C011198_0000000000000000 +1C0111A0_0000000000000000 +1C0111A8_0000000000000000 +1C0111B0_0000000000000000 +1C0111B8_0000000000000000 +1C0111C0_0000000000000000 +1C0111C8_0000000000000000 +1C0111D0_0000000000000000 +1C0111D8_0000000000000000 +1C0111E0_0000000000000000 +1C0111E8_0000000000000000 +1C0111F0_0000000000000000 +1C0111F8_0000000000000000 +1C011200_0000000000000000 +1C011208_0000000000000000 +1C011210_0000000000000000 +1C011218_0000000000000000 +1C011220_0000000000000000 +1C011228_0000000000000000 +1C011230_0000000000000000 +1C011238_0000000000000000 +1C011240_0000000000000000 +1C011248_0000000000000000 +1C011250_0000000000000000 +1C011258_0000000000000000 +1C011260_0000000000000000 +1C011268_0000000000000000 +1C011270_0000000000000000 +1C011278_0000000000000000 +1C011280_0000000000000000 +1C011288_0000000000000000 +1C011290_0000000000000000 +1C011298_0000000000000000 +1C0112A0_0000000000000000 +1C0112A8_0000000000000000 +1C0112B0_0000000000000000 +1C0112B8_0000000000000000 +1C0112C0_0000000000000000 +1C0112C8_0000000000000000 +1C0112D0_0000000000000000 +1C0112D8_0000000000000000 +1C0112E0_0000000000000000 +1C0112E8_0000000000000000 +1C0112F0_0000000000000000 +1C0112F8_0000000000000000 +1C011300_0000000000000000 +1C011308_0000000000000000 +1C011310_0000000000000000 +1C011318_0000000000000000 +1C011320_0000000000000000 +1C011328_0000000000000000 +1C011330_0000000000000000 +1C011338_0000000000000000 +1C011340_0000000000000000 +1C011348_0000000000000000 +1C011350_0000000000000000 +1C011358_0000000000000000 +1C011360_0000000000000000 +1C011368_0000000000000000 +1C011370_0000000000000000 +1C011378_0000000000000000 +1C011380_0000000000000000 +1C011388_0000000000000000 +1C011390_0000000000000000 +1C011398_0000000000000000 +1C0113A0_0000000000000000 +1C0113A8_0000000000000000 +1C0113B0_0000000000000000 +1C0113B8_0000000000000000 +1C0113C0_0000000000000000 +1C0113C8_0000000000000000 +1C0113D0_0000000000000000 +1C0113D8_0000000000000000 +1C0113E0_0000000000000000 +1C0113E8_0000000000000000 +1C0113F0_0000000000000000 +1C0113F8_0000000000000000 +1C011400_0000000000000000 +1C011408_0000000000000000 +1C011410_0000000000000000 +1C011418_0000000000000000 +1C011420_0000000000000000 +1C011428_0000000000000000 +1C011430_0000000000000000 +1C011438_0000000000000000 +1C011440_0000000000000000 +1C011448_0000000000000000 +1C011450_0000000000000000 +1C011458_0000000000000000 +1C011460_0000000000000000 +1C011468_0000000000000000 +1C011470_0000000000000000 +1C011478_0000000000000000 +1C011480_0000000000000000 +1C011488_0000000000000000 +1C011490_0000000000000000 +1C011498_0000000000000000 +1C0114A0_0000000000000000 +1C0114A8_0000000000000000 +1C0114B0_0000000000000000 +1C0114B8_0000000000000000 +1C0114C0_0000000000000000 +1C0114C8_0000000000000000 +1C0114D0_0000000000000000 +1C0114D8_0000000000000000 +1C0114E0_0000000000000000 +1C0114E8_0000000000000000 +1C0114F0_0000000000000000 +1C0114F8_0000000000000000 +1C011500_0000000000000000 +1C011508_0000000000000000 +1C011510_0000000000000000 +1C011518_0000000000000000 +1C011520_0000000000000000 +1C011528_0000000000000000 +1C011530_0000000000000000 +1C011538_0000000000000000 +1C011540_0000000000000000 +1C011548_0000000000000000 +1C011550_0000000000000000 +1C011558_0000000000000000 +1C011560_0000000000000000 +1C011568_0000000000000000 +1C011570_0000000000000000 +1C011578_0000000000000000 +1C011580_0000000000000000 +1C011588_0000000000000000 +1C011590_0000000000000000 +1C011598_0000000000000000 +1C0115A0_0000000000000000 +1C0115A8_0000000000000000 +1C0115B0_0000000000000000 +1C0115B8_0000000000000000 +1C0115C0_0000000000000000 +1C0115C8_0000000000000000 +1C0115D0_0000000000000000 +1C0115D8_0000000000000000 +1C0115E0_0000000000000000 +1C0115E8_0000000000000000 +1C0115F0_0000000000000000 +1C0115F8_0000000000000000 +1C011600_0000000000000000 +1C011608_0000000000000000 +1C011610_0000000000000000 +1C011618_0000000000000000 +1C011620_0000000000000000 +1C011628_0000000000000000 +1C011630_0000000000000000 +1C011638_0000000000000000 +1C011640_0000000000000000 +1C011648_0000000000000000 +1C011650_0000000000000000 +1C011658_0000000000000000 +1C011660_0000000000000000 +1C011668_0000000000000000 +1C011670_0000000000000000 +1C011678_0000000000000000 +1C011680_0000000000000000 +1C011688_0000000000000000 +1C011690_0000000000000000 +1C011698_0000000000000000 +1C0116A0_0000000000000000 +1C0116A8_0000000000000000 +1C0116B0_0000000000000000 +1C0116B8_0000000000000000 +1C0116C0_0000000000000000 +1C0116C8_0000000000000000 +1C0116D0_0000000000000000 +1C0116D8_0000000000000000 +1C0116E0_0000000000000000 +1C0116E8_0000000000000000 +1C0116F0_0000000000000000 +1C0116F8_0000000000000000 +1C011700_0000000000000000 +1C011708_0000000000000000 +1C011710_0000000000000000 +1C011718_0000000000000000 +1C011720_0000000000000000 +1C011728_0000000000000000 +1C011730_0000000000000000 +1C011738_0000000000000000 +1C011740_0000000000000000 +1C011748_0000000000000000 +1C011750_0000000000000000 +1C011758_0000000000000000 +1C011760_0000000000000000 +1C011768_0000000000000000 +1C011770_0000000000000000 +1C011778_0000000000000000 +1C011780_0000000000000000 +1C011788_0000000000000000 +1C011790_0000000000000000 +1C011798_0000000000000000 +1C0117A0_0000000000000000 +1C0117A8_0000000000000000 +1C0117B0_0000000000000000 +1C0117B8_0000000000000000 +1C0117C0_0000000000000000 +1C0117C8_0000000000000000 +1C0117D0_0000000000000000 +1C0117D8_0000000000000000 +1C0117E0_0000000000000000 +1C0117E8_0000000000000000 +1C0117F0_0000000000000000 +1C0117F8_0000000000000000 +1C011800_0000000000000000 +1C011808_0000000000000000 +1C011810_0000000000000000 +1C011818_0000000000000000 +1C011820_0000000000000000 +1C011828_0000000000000000 +1C011830_0000000000000000 +1C011838_0000000000000000 +1C011840_0000000000000000 +1C011848_0000000000000000 +1C011850_0000000000000000 +1C011858_0000000000000000 +1C011860_0000000000000000 +1C011868_0000000000000000 +1C011870_0000000000000000 +1C011878_0000000000000000 +1C011880_0000000000000000 +1C011888_0000000000000000 +1C011890_0000000000000000 +1C011898_0000000000000000 +1C0118A0_0000000000000000 +1C0118A8_0000000000000000 +1C0118B0_0000000000000000 +1C0118B8_0000000000000000 +1C0118C0_0000000000000000 +1C0118C8_0000000000000000 +1C0118D0_0000000000000000 +1C0118D8_0000000000000000 +1C0118E0_0000000000000000 +1C0118E8_0000000000000000 +1C0118F0_0000000000000000 +1C0118F8_0000000000000000 +1C011900_0000000000000000 +1C011908_0000000000000000 +1C011910_0000000000000000 +1C011918_0000000000000000 +1C011920_0000000000000000 +1C011928_0000000000000000 +1C011930_0000000000000000 +1C011938_0000000000000000 +1C011940_0000000000000000 +1C011948_0000000000000000 +1C011950_0000000000000000 +1C011958_0000000000000000 +1C011960_0000000000000000 +1C011968_0000000000000000 +1C011970_0000000000000000 +1C011978_0000000000000000 +1C011980_0000000000000000 +1C011988_0000000000000000 +1C011990_0000000000000000 +1C011998_0000000000000000 +1C0119A0_0000000000000000 +1C0119A8_0000000000000000 +1C0119B0_0000000000000000 +1C0119B8_0000000000000000 +1C0119C0_0000000000000000 +1C0119C8_0000000000000000 +1C0119D0_0000000000000000 +1C0119D8_0000000000000000 +1C0119E0_0000000000000000 +1C0119E8_0000000000000000 +1C0119F0_0000000000000000 +1C0119F8_0000000000000000 +1C011A00_0000000000000000 +1C011A08_0000000000000000 +1C011A10_0000000000000000 +1C011A18_0000000000000000 +1C011A20_0000000000000000 +1C011A28_0000000000000000 +1C011A30_0000000000000000 +1C011A38_0000000000000000 +1C011A40_0000000000000000 +1C011A48_0000000000000000 +1C011A50_0000000000000000 +1C011A58_0000000000000000 +1C011A60_0000000000000000 +1C011A68_0000000000000000 +1C011A70_0000000000000000 +1C011A78_0000000000000000 +1C011A80_0000000000000000 +1C011A88_0000000000000000 +1C011A90_0000000000000000 +1C011A98_0000000000000000 +1C011AA0_0000000000000000 +1C011AA8_0000000000000000 +1C011AB0_0000000000000000 +1C011AB8_0000000000000000 +1C011AC0_0000000000000000 +1C011AC8_0000000000000000 +1C011AD0_0000000000000000 +1C011AD8_0000000000000000 +1C011AE0_0000000000000000 +1C011AE8_0000000000000000 +1C011AF0_0000000000000000 +1C011AF8_0000000000000000 +1C011B00_0000000000000000 +1C011B08_0000000000000000 +1C011B10_0000000000000000 +1C011B18_0000000000000000 +1C011B20_0000000000000000 +1C011B28_0000000000000000 +1C011B30_0000000000000000 +1C011B38_0000000000000000 +1C011B40_0000000000000000 +1C011B48_0000000000000000 +1C011B50_0000000000000000 +1C011B58_0000000000000000 +1C011B60_0000000000000000 +1C011B68_0000000000000000 +1C011B70_0000000000000000 +1C011B78_0000000000000000 +1C011B80_0000000000000000 +1C011B88_0000000000000000 +1C011B90_0000000000000000 +1C011B98_0000000000000000 +1C011BA0_0000000000000000 +1C011BA8_0000000000000000 +1C011BB0_0000000000000000 +1C011BB8_0000000000000000 +1C011BC0_0000000000000000 +1C011BC8_0000000000000000 +1C011BD0_0000000000000000 +1C011BD8_0000000000000000 +1C011BE0_0000000000000000 +1C011BE8_0000000000000000 +1C011BF0_0000000000000000 +1C011BF8_0000000000000000 +1C011C00_0000000000000000 +1C011C08_0000000000000000 +1C011C10_0000000000000000 +1C011C18_0000000000000000 +1C011C20_0000000000000000 +1C011C28_0000000000000000 +1C011C30_0000000000000000 +1C011C38_0000000000000000 +1C011C40_0000000000000000 +1C011C48_0000000000000000 +1C011C50_0000000000000000 +1C011C58_0000000000000000 +1C011C60_0000000000000000 +1C011C68_0000000000000000 +1C011C70_0000000000000000 +1C011C78_0000000000000000 +1C011C80_0000000000000000 +1C011C88_0000000000000000 +1C011C90_0000000000000000 +1C011C98_0000000000000000 +1C011CA0_0000000000000000 +1C011CA8_0000000000000000 +1C011CB0_0000000000000000 +1C011CB8_0000000000000000 +1C011CC0_0000000000000000 +1C011CC8_0000000000000000 +1C011CD0_0000000000000000 +1C011CD8_0000000000000000 +1C011CE0_0000000000000000 +1C011CE8_0000000000000000 +1C011CF0_0000000000000000 +1C011CF8_0000000000000000 +1C011D00_0000000000000000 +1C011D08_0000000000000000 +1C011D10_0000000000000000 +1C011D18_0000000000000000 +1C011D20_0000000000000000 +1C011D28_0000000000000000 +1C011D30_0000000000000000 +1C011D38_0000000000000000 +1C011D40_0000000000000000 +1C011D48_0000000000000000 +1C011D50_0000000000000000 +1C011D58_0000000000000000 +1C011D60_0000000000000000 +1C011D68_0000000000000000 +1C011D70_0000000000000000 +1C011D78_0000000000000000 +1C011D80_0000000000000000 +1C011D88_0000000000000000 +1C011D90_0000000000000000 +1C011D98_0000000000000000 +1C011DA0_0000000000000000 +1C011DA8_0000000000000000 +1C011DB0_0000000000000000 +1C011DB8_0000000000000000 +1C011DC0_0000000000000000 +1C011DC8_0000000000000000 +1C011DD0_0000000000000000 +1C011DD8_0000000000000000 +1C011DE0_0000000000000000 +1C011DE8_0000000000000000 +1C011DF0_0000000000000000 +1C011DF8_0000000000000000 +1C011E00_0000000000000000 +1C011E08_0000000000000000 +1C011E10_0000000000000000 +1C011E18_0000000000000000 +1C011E20_0000000000000000 +1C011E28_0000000000000000 +1C011E30_0000000000000000 +1C011E38_0000000000000000 +1C011E40_0000000000000000 +1C011E48_0000000000000000 +1C011E50_0000000000000000 +1C011E58_0000000000000000 +1C011E60_0000000000000000 +1C011E68_0000000000000000 +1C011E70_0000000000000000 +1C011E78_0000000000000000 +1C011E80_0000000000000000 +1C011E88_0000000000000000 +1C011E90_0000000000000000 +1C011E98_0000000000000000 +1C011EA0_0000000000000000 +1C011EA8_0000000000000000 +1C011EB0_0000000000000000 +1C011EB8_0000000000000000 +1C011EC0_0000000000000000 +1C011EC8_0000000000000000 +1C011ED0_0000000000000000 +1C011ED8_0000000000000000 +1C011EE0_0000000000000000 +1C011EE8_0000000000000000 +1C011EF0_0000000000000000 +1C011EF8_0000000000000000 +1C011F00_0000000000000000 +1C011F08_0000000000000000 +1C011F10_0000000000000000 +1C011F18_0000000000000000 +1C011F20_0000000000000000 +1C011F28_0000000000000000 +1C011F30_0000000000000000 +1C011F38_0000000000000000 +1C011F40_0000000000000000 +1C011F48_0000000000000000 +1C011F50_0000000000000000 +1C011F58_0000000000000000 +1C011F60_0000000000000000 +1C011F68_0000000000000000 +1C011F70_0000000000000000 +1C011F78_0000000000000000 +1C011F80_0000000000000000 +1C011F88_0000000000000000 +1C011F90_0000000000000000 +1C011F98_0000000000000000 +1C011FA0_0000000000000000 +1C011FA8_0000000000000000 +1C011FB0_0000000000000000 +1C011FB8_0000000000000000 +1C011FC0_0000000000000000 +1C011FC8_0000000000000000 +1C011FD0_0000000000000000 +1C011FD8_0000000000000000 +1C011FE0_0000000000000000 +1C011FE8_0000000000000000 +1C011FF0_0000000000000000 +1C011FF8_0000000000000000 +1C012000_0000000000000000 +1C012008_0000000000000000 +1C012010_0000000000000000 +1C012018_0000000000000000 +1C012020_0000000000000000 +1C012028_0000000000000000 +1C012030_0000000000000000 +1C012038_0000000000000000 +1C012040_0000000000000000 +1C012048_0000000000000000 +1C012050_0000000000000000 +1C012058_0000000000000000 +1C012060_0000000000000000 +1C012068_0000000000000000 +1C012070_0000000000000000 +1C012078_0000000000000000 +1C012080_0000000000000000 +1C012088_0000000000000000 +1C012090_0000000000000000 +1C012098_0000000000000000 +1C0120A0_0000000000000000 +1C0120A8_0000000000000000 +1C0120B0_0000000000000000 +1C0120B8_0000000000000000 +1C0120C0_0000000000000000 +1C0120C8_0000000000000000 +1C0120D0_0000000000000000 +1C0120D8_0000000000000000 +1C0120E0_0000000000000000 +1C0120E8_0000000000000000 +1C0120F0_0000000000000000 +1C0120F8_0000000000000000 +1C012100_0000000000000000 +1C012108_0000000000000000 +1C012110_0000000000000000 +1C012118_0000000000000000 +1C012120_0000000000000000 +1C012128_0000000000000000 +1C012130_0000000000000000 +1C012138_0000000000000000 +1C012140_0000000000000000 +1C012148_0000000000000000 +1C012150_0000000000000000 +1C012158_0000000000000000 +1C012160_0000000000000000 +1C012168_0000000000000000 +1C012170_0000000000000000 +1C012178_0000000000000000 +1C012180_0000000000000000 +1C012188_0000000000000000 +1C012190_0000000000000000 +1C012198_0000000000000000 +1C0121A0_0000000000000000 +1C0121A8_0000000000000000 +1C0121B0_0000000000000000 +1C0121B8_0000000000000000 +1C0121C0_0000000000000000 +1C0121C8_0000000000000000 +1C0121D0_0000000000000000 +1C0121D8_0000000000000000 +1C0121E0_0000000000000000 +1C0121E8_0000000000000000 +1C0121F0_0000000000000000 +1C0121F8_0000000000000000 +1C012200_0000000000000000 +1C012208_0000000000000000 +1C012210_0000000000000000 +1C012218_0000000000000000 +1C012220_0000000000000000 +1C012228_0000000000000000 +1C012230_0000000000000000 +1C012238_0000000000000000 +1C012240_0000000000000000 +1C012248_0000000000000000 +1C012250_0000000000000000 +1C012258_0000000000000000 +1C012260_0000000000000000 +1C012268_0000000000000000 +1C012270_0000000000000000 +1C012278_0000000000000000 +1C012280_0000000000000000 +1C012288_0000000000000000 +1C012290_0000000000000000 +1C012298_0000000000000000 +1C0122A0_0000000000000000 +1C0122A8_0000000000000000 +1C0122B0_0000000000000000 +1C0122B8_0000000000000000 +1C0122C0_0000000000000000 +1C0122C8_0000000000000000 +1C0122D0_0000000000000000 +1C0122D8_0000000000000000 +1C0122E0_0000000000000000 +1C0122E8_0000000000000000 +1C0122F0_0000000000000000 +1C0122F8_0000000000000000 +1C012300_0000000000000000 +1C012308_0000000000000000 +1C012310_0000000000000000 +1C012318_0000000000000000 +1C012320_0000000000000000 +1C012328_0000000000000000 +1C012330_0000000000000000 +1C012338_0000000000000000 +1C012340_0000000000000000 +1C012348_0000000000000000 +1C012350_0000000000000000 +1C012358_0000000000000000 +1C012360_0000000000000000 +1C012368_0000000000000000 +1C012370_0000000000000000 +1C012378_0000000000000000 +1C012380_0000000000000000 +1C012388_0000000000000000 +1C012390_0000000000000000 +1C012398_0000000000000000 +1C0123A0_0000000000000000 +1C0123A8_0000000000000000 +1C0123B0_0000000000000000 +1C0123B8_0000000000000000 +1C0123C0_0000000000000000 +1C0123C8_0000000000000000 +1C0123D0_0000000000000000 +1C0123D8_0000000000000000 +1C0123E0_0000000000000000 +1C0123E8_0000000000000000 +1C0123F0_0000000000000000 +1C0123F8_0000000000000000 +1C012400_0000000000000000 +1C012408_0000000000000000 +1C012410_0000000000000000 +1C012418_0000000000000000 +1C012420_0000000000000000 +1C012428_0000000000000000 +1C012430_0000000000000000 +1C012438_0000000000000000 +1C012440_0000000000000000 +1C012448_0000000000000000 +1C012450_0000000000000000 +1C012458_0000000000000000 +1C012460_0000000000000000 +1C012468_0000000000000000 +1C012470_0000000000000000 +1C012478_0000000000000000 +1C012480_0000000000000000 +1C012488_0000000000000000 +1C012490_0000000000000000 +1C012498_0000000000000000 +1C0124A0_0000000000000000 +1C0124A8_0000000000000000 +1C0124B0_0000000000000000 +1C0124B8_0000000000000000 +1C0124C0_0000000000000000 +1C0124C8_0000000000000000 +1C0124D0_0000000000000000 +1C0124D8_0000000000000000 +1C0124E0_0000000000000000 +1C0124E8_0000000000000000 +1C0124F0_0000000000000000 +1C0124F8_0000000000000000 +1C012500_0000000000000000 +1C012508_0000000000000000 +1C012510_0000000000000000 +1C012518_0000000000000000 +1C012520_0000000000000000 +1C012528_0000000000000000 +1C012530_0000000000000000 +1C012538_0000000000000000 +1C012540_0000000000000000 +1C012548_0000000000000000 +1C012550_0000000000000000 +1C012558_0000000000000000 +1C012560_0000000000000000 +1C012568_0000000000000000 +1C012570_0000000000000000 +1C012578_0000000000000000 +1C012580_0000000000000000 +1C012588_0000000000000000 +1C012590_0000000000000000 +1C012598_0000000000000000 +1C0125A0_0000000000000000 +1C0125A8_0000000000000000 +1C0125B0_0000000000000000 +1C0125B8_0000000000000000 +1C0125C0_0000000000000000 +1C0125C8_0000000000000000 +1C0125D0_0000000000000000 +1C0125D8_0000000000000000 +1C0125E0_0000000000000000 +1C0125E8_0000000000000000 +1C0125F0_0000000000000000 +1C0125F8_0000000000000000 +1C012600_0000000000000000 +1C012608_0000000000000000 +1C012610_0000000000000000 +1C012618_0000000000000000 +1C012620_0000000000000000 +1C012628_0000000000000000 +1C012630_0000000000000000 +1C012638_0000000000000000 +1C012640_0000000000000000 +1C012648_0000000000000000 +1C012650_0000000000000000 +1C012658_0000000000000000 +1C012660_0000000000000000 +1C012668_0000000000000000 +1C012670_0000000000000000 +1C012678_0000000000000000 +1C012680_0000000000000000 +1C012688_0000000000000000 +1C012690_0000000000000000 +1C012698_0000000000000000 +1C0126A0_0000000000000000 +1C0126A8_0000000000000000 +1C0126B0_0000000000000000 +1C0126B8_0000000000000000 +1C0126C0_0000000000000000 +1C0126C8_0000000000000000 +1C0126D0_0000000000000000 +1C0126D8_0000000000000000 +1C0126E0_0000000000000000 +1C0126E8_0000000000000000 +1C0126F0_0000000000000000 +1C0126F8_0000000000000000 +1C012700_0000000000000000 +1C012708_0000000000000000 +1C012710_0000000000000000 +1C012718_0000000000000000 +1C012720_0000000000000000 +1C012728_0000000000000000 +1C012730_0000000000000000 +1C012738_0000000000000000 +1C012740_0000000000000000 +1C012748_0000000000000000 +1C012750_0000000000000000 +1C012758_0000000000000000 +1C012760_0000000000000000 +1C012768_0000000000000000 +1C012770_0000000000000000 +1C012778_0000000000000000 +1C012780_0000000000000000 +1C012788_0000000000000000 +1C012790_0000000000000000 +1C012798_0000000000000000 +1C0127A0_0000000000000000 +1C0127A8_0000000000000000 +1C0127B0_0000000000000000 +1C0127B8_0000000000000000 +1C0127C0_0000000000000000 +1C0127C8_0000000000000000 +1C0127D0_0000000000000000 +1C0127D8_0000000000000000 +1C0127E0_0000000000000000 +1C0127E8_0000000000000000 +1C0127F0_0000000000000000 +1C0127F8_0000000000000000 +1C012800_0000000000000000 +1C012808_0000000000000000 +1C012810_0000000000000000 +1C012818_0000000000000000 +1C012820_0000000000000000 +1C012828_0000000000000000 +1C012830_0000000000000000 +1C012838_0000000000000000 +1C012840_0000000000000000 +1C012848_0000000000000000 +1C012850_0000000000000000 +1C012858_0000000000000000 +1C012860_0000000000000000 +1C012868_0000000000000000 +1C012870_0000000000000000 +1C012878_0000000000000000 +1C012880_0000000000000000 +1C012888_0000000000000000 +1C012890_0000000000000000 +1C012898_0000000000000000 +1C0128A0_0000000000000000 +1C0128A8_0000000000000000 +1C0128B0_0000000000000000 +1C0128B8_0000000000000000 +1C0128C0_0000000000000000 +1C0128C8_0000000000000000 +1C0128D0_0000000000000000 +1C0128D8_0000000000000000 +1C0128E0_0000000000000000 +1C0128E8_0000000000000000 +1C0128F0_0000000000000000 +1C0128F8_0000000000000000 +1C012900_0000000000000000 +1C012908_0000000000000000 +1C012910_0000000000000000 +1C012918_0000000000000000 +1C012920_0000000000000000 +1C012928_0000000000000000 +1C012930_0000000000000000 +1C012938_0000000000000000 +1C012940_0000000000000000 +1C012948_0000000000000000 +1C012950_0000000000000000 +1C012958_0000000000000000 +1C012960_0000000000000000 +1C012968_0000000000000000 +1C012970_0000000000000000 +1C012978_0000000000000000 +1C012980_0000000000000000 +1C012988_0000000000000000 +1C012990_0000000000000000 +1C012998_0000000000000000 +1C0129A0_0000000000000000 +1C0129A8_0000000000000000 +1C0129B0_0000000000000000 +1C0129B8_0000000000000000 +1C0129C0_0000000000000000 +1C0129C8_0000000000000000 +1C0129D0_0000000000000000 +1C0129D8_0000000000000000 +1C0129E0_0000000000000000 +1C0129E8_0000000000000000 +1C0129F0_0000000000000000 +1C0129F8_0000000000000000 +1C012A00_0000000000000000 +1C012A08_0000000000000000 +1C012A10_0000000000000000 +1C012A18_0000000000000000 +1C012A20_0000000000000000 +1C012A28_0000000000000000 +1C012A30_0000000000000000 +1C012A38_0000000000000000 +1C012A40_0000000000000000 +1C012A48_0000000000000000 +1C012A50_0000000000000000 +1C012A58_0000000000000000 +1C012A60_0000000000000000 +1C012A68_0000000000000000 +1C012A70_0000000000000000 +1C012A78_0000000000000000 +1C012A80_0000000000000000 +1C012A88_0000000000000000 +1C012A90_0000000000000000 +1C012A98_0000000000000000 +1C012AA0_0000000000000000 +1C012AA8_0000000000000000 +1C012AB0_0000000000000000 +1C012AB8_0000000000000000 +1C012AC0_0000000000000000 +1C012AC8_0000000000000000 +1C012AD0_0000000000000000 +1C012AD8_0000000000000000 +1C012AE0_0000000000000000 +1C012AE8_0000000000000000 +1C012AF0_0000000000000000 +1C012AF8_0000000000000000 +1C012B00_0000000000000000 +1C012B08_0000000000000000 +1C012B10_0000000000000000 +1C012B18_0000000000000000 +1C012B20_0000000000000000 +1C012B28_0000000000000000 +1C012B30_0000000000000000 +1C012B38_0000000000000000 +1C012B40_0000000000000000 +1C012B48_0000000000000000 +1C012B50_0000000000000000 +1C012B58_0000000000000000 +1C012B60_0000000000000000 +1C012B68_0000000000000000 +1C012B70_0000000000000000 +1C012B78_0000000000000000 +1C012B80_0000000000000000 +1C012B88_0000000000000000 +1C012B90_0000000000000000 +1C012B98_0000000000000000 +1C012BA0_0000000000000000 +1C012BA8_0000000000000000 +1C012BB0_0000000000000000 +1C012BB8_0000000000000000 +1C012BC0_0000000000000000 +1C012BC8_0000000000000000 +1C012BD0_0000000000000000 +1C012BD8_0000000000000000 +1C012BE0_0000000000000000 +1C012BE8_0000000000000000 +1C012BF0_0000000000000000 +1C012BF8_0000000000000000 +1C012C00_0000000000000000 +1C012C08_0000000000000000 +1C012C10_0000000000000000 +1C012C18_0000000000000000 +1C012C20_0000000000000000 +1C012C28_0000000000000000 +1C012C30_0000000000000000 +1C012C38_0000000000000000 +1C012C40_0000000000000000 +1C012C48_0000000000000000 +1C012C50_0000000000000000 +1C012C58_0000000000000000 +1C012C60_0000000000000000 +1C012C68_0000000000000000 +1C012C70_0000000000000000 +1C012C78_0000000000000000 +1C012C80_0000000000000000 +1C012C88_0000000000000000 +1C012C90_0000000000000000 +1C012C98_0000000000000000 +1C012CA0_0000000000000000 +1C012CA8_0000000000000000 +1C012CB0_0000000000000000 +1C012CB8_0000000000000000 +1C012CC0_0000000000000000 +1C012CC8_0000000000000000 +1C012CD0_0000000000000000 +1C012CD8_0000000000000000 +1C012CE0_0000000000000000 +1C012CE8_0000000000000000 +1C012CF0_0000000000000000 +1C012CF8_0000000000000000 +1C012D00_0000000000000000 +1C012D08_0000000000000000 +1C012D10_0000000000000000 +1C012D18_0000000000000000 +1C012D20_0000000000000000 +1C012D28_0000000000000000 +1C012D30_0000000000000000 +1C012D38_0000000000000000 +1C012D40_0000000000000000 +1C012D48_0000000000000000 +1C012D50_0000000000000000 +1C012D58_0000000000000000 +1C012D60_0000000000000000 +1C012D68_0000000000000000 +1C012D70_0000000000000000 +1C012D78_0000000000000000 +1C012D80_0000000000000000 +1C012D88_0000000000000000 +1C012D90_0000000000000000 +1C012D98_0000000000000000 +1C012DA0_0000000000000000 +1C012DA8_0000000000000000 +1C012DB0_0000000000000000 +1C012DB8_0000000000000000 +1C012DC0_0000000000000000 +1C012DC8_0000000000000000 +1C012DD0_0000000000000000 +1C012DD8_0000000000000000 +1C012DE0_0000000000000000 +1C012DE8_0000000000000000 +1C012DF0_0000000000000000 +1C012DF8_0000000000000000 +1C012E00_0000000000000000 +1C012E08_0000000000000000 +1C012E10_0000000000000000 +1C012E18_0000000000000000 +1C012E20_0000000000000000 +1C012E28_0000000000000000 +1C012E30_0000000000000000 +1C012E38_0000000000000000 +1C012E40_0000000000000000 +1C012E48_0000000000000000 +1C012E50_0000000000000000 +1C012E58_0000000000000000 +1C012E60_0000000000000000 +1C012E68_0000000000000000 +1C012E70_0000000000000000 +1C012E78_0000000000000000 +1C012E80_0000000000000000 +1C012E88_0000000000000000 +1C012E90_0000000000000000 +1C012E98_0000000000000000 +1C012EA0_0000000000000000 +1C012EA8_0000000000000000 +1C012EB0_0000000000000000 +1C012EB8_0000000000000000 +1C012EC0_0000000000000000 +1C012EC8_0000000000000000 +1C012ED0_0000000000000000 +1C012ED8_0000000000000000 +1C012EE0_0000000000000000 +1C012EE8_0000000000000000 +1C012EF0_0000000000000000 +1C012EF8_0000000000000000 +1C012F00_0000000000000000 +1C012F08_0000000000000000 +1C012F10_0000000000000000 +1C012F18_0000000000000000 +1C012F20_0000000000000000 +1C012F28_0000000000000000 +1C012F30_0000000000000000 +1C012F38_0000000000000000 +1C012F40_0000000000000000 +1C012F48_0000000000000000 +1C012F50_0000000000000000 +1C012F58_0000000000000000 +1C012F60_0000000000000000 +1C012F68_0000000000000000 +1C012F70_0000000000000000 +1C012F78_0000000000000000 +1C012F80_0000000000000000 +1C012F88_0000000000000000 +1C012F90_0000000000000000 +1C012F98_0000000000000000 +1C012FA0_0000000000000000 +1C012FA8_0000000000000000 +1C012FB0_0000000000000000 +1C012FB8_0000000000000000 +1C012FC0_0000000000000000 +1C012FC8_0000000000000000 +1C012FD0_0000000000000000 +1C012FD8_0000000000000000 +1C012FE0_0000000000000000 +1C012FE8_0000000000000000 +1C012FF0_0000000000000000 +1C012FF8_0000000000000000 +1C013000_0000000000000000 +1C013008_0000000000000000 +1C013010_0000000000000000 +1C013018_0000000000000000 +1C013020_0000000000000000 +1C013028_0000000000000000 +1C013030_0000000000000000 +1C013038_0000000000000000 +1C013040_0000000000000000 +1C013048_0000000000000000 +1C013050_0000000000000000 +1C013058_0000000000000000 +1C013060_0000000000000000 +1C013068_0000000000000000 +1C013070_0000000000000000 +1C013078_0000000000000000 +1C013080_0000000000000000 +1C013088_0000000000000000 +1C013090_0000000000000000 +1C013098_0000000000000000 +1C0130A0_0000000000000000 +1C0130A8_0000000000000000 +1C0130B0_0000000000000000 +1C0130B8_0000000000000000 +1C0130C0_0000000000000000 +1C0130C8_0000000000000000 +1C0130D0_0000000000000000 +1C0130D8_0000000000000000 +1C0130E0_0000000000000000 +1C0130E8_0000000000000000 +1C0130F0_0000000000000000 +1C0130F8_0000000000000000 +1C013100_0000000000000000 +1C013108_0000000000000000 +1C013110_0000000000000000 +1C013118_0000000000000000 +1C013120_0000000000000000 +1C013128_0000000000000000 +1C013130_0000000000000000 +1C013138_0000000000000000 +1C013140_0000000000000000 +1C013148_0000000000000000 +1C013150_0000000000000000 +1C013158_0000000000000000 +1C013160_0000000000000000 +1C013168_0000000000000000 +1C013170_0000000000000000 +1C013178_0000000000000000 +1C013180_0000000000000000 +1C013188_0000000000000000 +1C013190_0000000000000000 +1C013198_0000000000000000 +1C0131A0_0000000000000000 +1C0131A8_0000000000000000 +1C0131B0_0000000000000000 +1C0131B8_0000000000000000 +1C0131C0_0000000000000000 +1C0131C8_0000000000000000 +1C0131D0_0000000000000000 +1C0131D8_0000000000000000 +1C0131E0_0000000000000000 +1C0131E8_0000000000000000 +1C0131F0_0000000000000000 +1C0131F8_0000000000000000 +1C013200_0000000000000000 +1C013208_0000000000000000 +1C013210_0000000000000000 +1C013218_0000000000000000 +1C013220_0000000000000000 +1C013228_0000000000000000 +1C013230_0000000000000000 +1C013238_0000000000000000 +1C013240_0000000000000000 +1C013248_0000000000000000 +1C013250_0000000000000000 +1C013258_0000000000000000 +1C013260_0000000000000000 +1C013268_0000000000000000 +1C013270_0000000000000000 +1C013278_0000000000000000 +1C013280_0000000000000000 +1C013288_0000000000000000 +1C013290_0000000000000000 +1C013298_0000000000000000 +1C0132A0_0000000000000000 +1C0132A8_0000000000000000 +1C0132B0_0000000000000000 +1C0132B8_0000000000000000 +1C0132C0_0000000000000000 +1C0132C8_0000000000000000 +1C0132D0_0000000000000000 +1C0132D8_0000000000000000 +1C0132E0_0000000000000000 +1C0132E8_0000000000000000 +1C0132F0_0000000000000000 +1C0132F8_0000000000000000 +1C013300_0000000000000000 +1C013308_0000000000000000 +1C013310_0000000000000000 +1C013318_0000000000000000 +1C013320_0000000000000000 +1C013328_0000000000000000 +1C013330_0000000000000000 +1C013338_0000000000000000 +1C013340_0000000000000000 +1C013348_0000000000000000 +1C013350_0000000000000000 +1C013358_0000000000000000 +1C013360_0000000000000000 +1C013368_0000000000000000 +1C013370_0000000000000000 +1C013378_0000000000000000 +1C013380_0000000000000000 +1C013388_0000000000000000 +1C013390_0000000000000000 +1C013398_0000000000000000 +1C0133A0_0000000000000000 +1C0133A8_0000000000000000 +1C0133B0_0000000000000000 +1C0133B8_0000000000000000 +1C0133C0_0000000000000000 +1C0133C8_0000000000000000 +1C0133D0_0000000000000000 +1C0133D8_0000000000000000 +1C0133E0_0000000000000000 +1C0133E8_0000000000000000 +1C0133F0_0000000000000000 +1C0133F8_0000000000000000 diff --git a/work/vopt_tb/_data/exempt0Sfb4S b/work/vopt_tb/_data/exempt0Sfb4S new file mode 100644 index 0000000..922a7b7 Binary files /dev/null and b/work/vopt_tb/_data/exempt0Sfb4S differ diff --git a/work/vopt_tb/_data/exemptRqPeap b/work/vopt_tb/_data/exemptRqPeap new file mode 100644 index 0000000..75deb78 Binary files /dev/null and b/work/vopt_tb/_data/exemptRqPeap differ diff --git a/work/vopt_tb/_data/exemptnpcS7f b/work/vopt_tb/_data/exemptnpcS7f new file mode 100644 index 0000000..964ab03 Binary files /dev/null and b/work/vopt_tb/_data/exemptnpcS7f differ diff --git a/work/vopt_tb/_lib.qdb b/work/vopt_tb/_lib.qdb new file mode 100644 index 0000000..343a9d1 Binary files /dev/null and b/work/vopt_tb/_lib.qdb differ diff --git a/work/vopt_tb/_lib1_13.qdb b/work/vopt_tb/_lib1_13.qdb new file mode 100644 index 0000000..8f2a193 Binary files /dev/null and b/work/vopt_tb/_lib1_13.qdb differ diff --git a/work/vopt_tb/_lib1_13.qpg b/work/vopt_tb/_lib1_13.qpg new file mode 100644 index 0000000..189d2e5 Binary files /dev/null and b/work/vopt_tb/_lib1_13.qpg differ diff --git a/work/vopt_tb/_lib1_13.qtl b/work/vopt_tb/_lib1_13.qtl new file mode 100644 index 0000000..66aa522 Binary files /dev/null and b/work/vopt_tb/_lib1_13.qtl differ diff --git a/work/vopt_tb/_lib2_13.qdb b/work/vopt_tb/_lib2_13.qdb new file mode 100644 index 0000000..d529eb4 Binary files /dev/null and b/work/vopt_tb/_lib2_13.qdb differ diff --git a/work/vopt_tb/_lib2_13.qpg b/work/vopt_tb/_lib2_13.qpg new file mode 100644 index 0000000..5f074f4 Binary files /dev/null and b/work/vopt_tb/_lib2_13.qpg differ diff --git a/work/vopt_tb/_lib2_13.qtl b/work/vopt_tb/_lib2_13.qtl new file mode 100644 index 0000000..7d0fd4f Binary files /dev/null and b/work/vopt_tb/_lib2_13.qtl differ diff --git a/work/vopt_tb/_lib3_13.qdb b/work/vopt_tb/_lib3_13.qdb new file mode 100644 index 0000000..03bc560 Binary files /dev/null and b/work/vopt_tb/_lib3_13.qdb differ diff --git a/work/vopt_tb/_lib3_13.qpg b/work/vopt_tb/_lib3_13.qpg new file mode 100644 index 0000000..ebb7c6e Binary files /dev/null and b/work/vopt_tb/_lib3_13.qpg differ diff --git a/work/vopt_tb/_lib3_13.qtl b/work/vopt_tb/_lib3_13.qtl new file mode 100644 index 0000000..63dc638 Binary files /dev/null and b/work/vopt_tb/_lib3_13.qtl differ diff --git a/work/vopt_tb/_lib4_13.qdb b/work/vopt_tb/_lib4_13.qdb new file mode 100644 index 0000000..668f7c3 Binary files /dev/null and b/work/vopt_tb/_lib4_13.qdb differ diff --git a/work/vopt_tb/_lib4_13.qpg b/work/vopt_tb/_lib4_13.qpg new file mode 100644 index 0000000..23bde46 Binary files /dev/null and b/work/vopt_tb/_lib4_13.qpg differ diff --git a/work/vopt_tb/_lib4_13.qtl b/work/vopt_tb/_lib4_13.qtl new file mode 100644 index 0000000..5ec3ac1 Binary files /dev/null and b/work/vopt_tb/_lib4_13.qtl differ diff --git a/work/vopt_tb/_lib5_13.qdb b/work/vopt_tb/_lib5_13.qdb new file mode 100644 index 0000000..de35784 Binary files /dev/null and b/work/vopt_tb/_lib5_13.qdb differ diff --git a/work/vopt_tb/_lib5_13.qpg b/work/vopt_tb/_lib5_13.qpg new file mode 100644 index 0000000..a4c3d59 Binary files /dev/null and b/work/vopt_tb/_lib5_13.qpg differ diff --git a/work/vopt_tb/_lib5_13.qtl b/work/vopt_tb/_lib5_13.qtl new file mode 100644 index 0000000..931b5f6 Binary files /dev/null and b/work/vopt_tb/_lib5_13.qtl differ diff --git a/work/vopt_tb/_lib6_13.qdb b/work/vopt_tb/_lib6_13.qdb new file mode 100644 index 0000000..2dd81b0 Binary files /dev/null and b/work/vopt_tb/_lib6_13.qdb differ diff --git a/work/vopt_tb/_lib6_13.qpg b/work/vopt_tb/_lib6_13.qpg new file mode 100644 index 0000000..ca950a6 Binary files /dev/null and b/work/vopt_tb/_lib6_13.qpg differ diff --git a/work/vopt_tb/_lib6_13.qtl b/work/vopt_tb/_lib6_13.qtl new file mode 100644 index 0000000..087e51e Binary files /dev/null and b/work/vopt_tb/_lib6_13.qtl differ diff --git a/work/vopt_tb/_lib7_13.qdb b/work/vopt_tb/_lib7_13.qdb new file mode 100644 index 0000000..c049471 Binary files /dev/null and b/work/vopt_tb/_lib7_13.qdb differ diff --git a/work/vopt_tb/_lib7_13.qpg b/work/vopt_tb/_lib7_13.qpg new file mode 100644 index 0000000..92dc0db Binary files /dev/null and b/work/vopt_tb/_lib7_13.qpg differ diff --git a/work/vopt_tb/_lib7_13.qtl b/work/vopt_tb/_lib7_13.qtl new file mode 100644 index 0000000..8689924 Binary files /dev/null and b/work/vopt_tb/_lib7_13.qtl differ diff --git a/work/vopt_tb/_lib8_13.qdb b/work/vopt_tb/_lib8_13.qdb new file mode 100644 index 0000000..3b74508 Binary files /dev/null and b/work/vopt_tb/_lib8_13.qdb differ diff --git a/work/vopt_tb/_lib8_13.qpg b/work/vopt_tb/_lib8_13.qpg new file mode 100644 index 0000000..6f8d741 Binary files /dev/null and b/work/vopt_tb/_lib8_13.qpg differ diff --git a/work/vopt_tb/_lib8_13.qtl b/work/vopt_tb/_lib8_13.qtl new file mode 100644 index 0000000..7fa49ed Binary files /dev/null and b/work/vopt_tb/_lib8_13.qtl differ